home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 2 / Gold Medal Software Volume 2 (Gold Medal) (1994).iso / utils / inter37a.arj / INTERRUP.A < prev    next >
Text File  |  1993-10-03  |  286KB  |  7,372 lines

  1. Interrupt List        Release 37            Last change 10/3/93
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993 Ralf Brown
  3. --------!---FILELIST-------------------------
  4. Please redistribute the following files unmodified as a group, in a trio of
  5. archives named INTER37A through INTER37C (preferably the original authenticated
  6. PKZIP archives):
  7.     INTERRUP.1ST    the read-me file, containing credits, availability info
  8.     INTERRUP.A    INT 00 through INT 13     \
  9.     INTERRUP.B    INT 14 through INT 15      \
  10.     INTERRUP.C    INT 16 through INT 21/41   \   total 1348 pages at
  11.     INTERRUP.D    INT 21/42 through INT 21/7F \  60 lines per page,
  12.     INTERRUP.E    INT 21/80 through INT 21/FF  \ 1443 with INTPRINT -p
  13.     INTERRUP.F    INT 22 through INT 2F/7F     / (5715 entries)
  14.     INTERRUP.G    INT 2F/80 through INT 2F/FF /
  15.     INTERRUP.H    INT 30 through INT 5F       /
  16.     INTERRUP.I    INT 60 through INT 67      /
  17.     INTERRUP.J    INT 68 through INT FF     /
  18.     INTERRUP.PRI    a brief introduction to interrupts
  19.     INTPRINT.COM    a simple formatter that also generates a list summary
  20.     INTPRINT.DOC    instructions for INTPRINT
  21.     86BUGS.LST    a listing of CPU bugs and undocumented features
  22.     CMOS.LST    a description of the CMOS RAM data bytes
  23.     GLOSSARY.LST    a glossary of terms, abbreviations, and acronyms
  24.     MEMORY.LST    format of the BIOS data area
  25.     PORTS.LST    a listing of I/O ports
  26.     COMBINE.BAT    combine the pieces of the list into a single file
  27. The following files should be distributed in an archive called INTER37D:
  28.     INT.COM        invoke interrupts from commandline
  29.     INT2GUID.*    convert list into TurboPower GUIDE or POPHELP database
  30.     INT2HLP.BAT    Perl script to convert list into QuickHelp database
  31.     INT2QH.*    program to convert list into QuickHelp database
  32.     INTERVUE.EXE    indexed interrupt list browser
  33.     INTHELP.*    convert list into TurboPower GUIDE database
  34.     INTLIST.E    Epsilon extension for handling list
  35.     INTLIST.ICO    Windows icon for INTERVUE
  36.     INTPRINT.C    source code for INTPRINT
  37.     RB2NG.*        convert list into Norton Guides database
  38. --------!---CONTACT_INFO---------------------
  39. If you notice any mistakes or omissions, please let me know!  It is only with
  40. YOUR help that the list can continue to grow at the current rate.  Please send
  41. all changes to me rather than distributing a modified version of the list.
  42.  
  43. Please read the file INTERRUP.1ST before asking me any questions.  You may find
  44. that they have already been addressed.
  45.  
  46.      Ralf Brown
  47.  
  48. Internet: ralf@telerama.pgh.pa.us
  49. UUCP: {uunet,harvard}!telerama.pgh.pa.us!ralf
  50. FIDO: Ralf Brown 1:129/26.1
  51.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  52.     unless you address it to me)
  53. CIS:  >INTERNET:ralf@telerama.pgh.pa.us
  54.  
  55. I reply to all e-mail submissions and inquiries, but some of my replies bounce
  56. because of bad return paths.  If you don't get a response from me within a
  57. reasonable period of time, send it again with a better return path (starting at
  58. harvard or ucbvax for UUCP, from the Internet for others).
  59. --------!------------------------------------
  60. See INTERRUP.1ST for the key to system abbreviations and a list of the
  61. trademarks mentioned here.
  62. --------!---DISCLAIMER-----------------------
  63. DISCLAIMER:  THIS MATERIAL IS PROVIDED "AS IS".     I verify the information
  64. contained in this list to the best of my ability, but I cannot be held
  65. responsible for any problems caused by use or misuse of the information,
  66. especially for those functions not officially  documented.  If it is marked
  67. "internal" or undocumented, you should check it carefully to make sure it
  68. works the same way in your version of the software (and please let me know
  69. whether or not it works the same way).    Information marked with "???" is
  70. known to be incomplete or guesswork.
  71. --------!---FLAGS----------------------------
  72. The use of -> instead of = signifies that the indicated register or register
  73. pair contains a pointer to the specified item, rather than the item itself.
  74. One or more letters may follow the interrupt number; they have the following
  75. meanings:  U - undocumented function, u - partially documented function,
  76. P - available only in protected mode, R - available only in real or V86 mode,
  77. C - callout or callback (usually hooked rather than called),
  78. O - obsolete (no longer present in current versions)
  79. --------!---CATEGORIES-----------------------
  80. The ninth column of the divider line preceding an entry usually contains a
  81. classification code (the entry has not been classified if that character is
  82. a dash).  The codes currently in use are:
  83.     A - applications, a - access software (screen readers, etc),
  84.     B - BIOS, b - vendor-specific BIOS extensions,
  85.     C - CPU-generated, c - caches/spoolers,
  86.     D - DOS kernel, d - disk I/O enhancements,
  87.     E - DOS extenders, e - electronic mail, F - FAX,
  88.     f - file manipulation, G - debuggers/debugging tools,
  89.     H - hardware, h - vendor-specific hardware,
  90.     I - IBM workstation/terminal emulators,
  91.     J - Japanese, j - joke programs,
  92.     K - keyboard enhancers, k - file compression,
  93.     l - shells/command interpreters,
  94.     M - mouse/pointing device, m - memory management,
  95.     N - network, O - other operating systems,
  96.     P - printer enhancements, p - power management,
  97.     Q - DESQview/TopView and Quarterdeck programs,
  98.     R - remote control/file access, r - runtime support,
  99.     S - serial I/O, s - sound/speech,
  100.     T - DOS-based task switchers/multitaskers, t - TSR libraries
  101.     U - resident utilities, u - emulators,
  102.     V - video, v - virus/antivirus,
  103.     W - MS Windows, X - expansion bus BIOSes,
  104.     y - security, * - reserved (& not otherwise classified)
  105. --------C-00---------------------------------
  106. INT 00 - CPU-generated - DIVIDE ERROR
  107. Desc:    generated if the divisor of a DIV or IDIV instruction is zero or the
  108.       quotient overflows the result register; DX and AX will be unchanged.
  109. Notes:    on an 8086/8088, the return address points to the following instruction
  110.     on an 80286+, the return address points to the divide instruction
  111.     an 8086/8088 will generate this interrupt if the result of a division
  112.       is 80h (byte) or 8000h (word)
  113. SeeAlso: INT 04
  114. --------G-00---------------------------------
  115. INT 00 - Zenith - ROM DEBUGGER
  116. Desc:    invokes the ROM Debugger when at the BIOS level; equivalent to
  117.       pressing Ctrl-Alt-Ins on booting.
  118. Note:    since DOS revectors INT 00, it is necessary to restore this vector to
  119.       its original ROM BIOS value in order to invoke the debugger once DOS
  120.       loads
  121. SeeAlso: INT 03"Columbia"
  122. --------C-01---------------------------------
  123. INT 01 - CPU-generated - SINGLE STEP
  124. Desc:    generated after each instruction if TF (trap flag) is set; TF is
  125.       cleared on invoking the single-step interrupt handler
  126. Notes:    interrupts are prioritized such that external interrupts are invoked
  127.       after the INT 01 pushes CS:IP/FLAGS and clears TF, but before the
  128.       first instruction of the handler executes
  129.     used by debuggers for single-instruction execution tracing, such as
  130.       MS-DOS DEBUG's T command
  131. SeeAlso: INT 03
  132. --------C-01---------------------------------
  133. INT 01 - CPU-generated (80386+) - DEBUGGING EXCEPTIONS
  134. Desc:    generated by the CPU on various occurrences which may be of interest
  135.       to a debugger program
  136. Note:    events which may trigger the interrupt:
  137.       Instruction address breakpoint fault - will return to execute inst
  138.       Data address breakpoint trap - will return to following instruction
  139.       General detect fault, debug registers in use
  140.       Task-switch breakpoint trap
  141.       undocumented 386/486 opcode F1h - will return to following instruc
  142. SeeAlso: INT 03
  143. --------H-02---------------------------------
  144. INT 02 - external hardware - NON-MASKABLE INTERRUPT
  145. Desc:    generated by the CPU when the input to the NMI pin is asserted
  146. Notes:    return address points to start of interrupted instruction on 80286+
  147.     on the 80286+, further NMIs are disabled until the next IRET
  148.       instruction, but one additional NMI is remembered by the hardware
  149.       and will be serviced after the IRET instruction reenables NMIs
  150.     maskable interrupts may interrupt the NMI handler if interrupts are
  151.       enabled
  152.     although the Intel documentation states that this interrupt is
  153.       typically used for power-failure procedures, it has many other uses
  154.       on IBM-compatible machines:
  155.         Memory parity error: all except Jr, CONV, and some machines
  156.                 without memory parity
  157.         Breakout switch on hardware debuggers
  158.         Coprocessor interrupt: all except Jr and CONV
  159.         Keyboard interrupt: Jr, CONV
  160.         I/O channel check: CONV, PS50+
  161.         Disk-controller power-on request: CONV
  162.         System suspend: CONV
  163.         Real-time clock: CONV
  164.         System watch-dog timer, time-out interrupt: PS50+
  165.         DMA timer time-out interrupt: PS50+
  166.         Low battery: HP 95LX
  167.         Module pulled: HP 95LX
  168. --------C-03---------------------------------
  169. INT 03 - CPU-generated - BREAKPOINT
  170. Desc:    generated by the one-byte breakpoint instruction (opcode CCh)
  171. Notes:    used by debuggers to implement breakpoints, such as MS-DOS DEBUG's G
  172.       command
  173.     also used by Turbo Pascal versions 1,2,3 when {$U+} specified
  174.     return address points to byte following the breakpoint instruction
  175. SeeAlso: INT 01
  176. --------G-03---------------------------------
  177. INT 03 - Columbia PCs (desktop,VP portables) - ROM DEBUGGER
  178. Desc:    invokes the ROM Debugger if INT 03 has not been revectored; equivalent
  179.       to pressing Esc on booting.
  180. SeeAlso: INT 00"Zenith"
  181. --------G-030910-----------------------------
  182. INT 03 - Soft-ICE - BACK DOOR COMMANDS - DISPLAY STRING IN Soft-ICE WINDOW
  183.     AX = 0910h
  184.     SI = magic value 4647h ('FG')
  185.     DI = magic value 4A4Dh ('JM')
  186.     DS:DX -> ASCIZ string to display (max 100 bytes, 0Dh OK)
  187. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  188. --------G-030911-----------------------------
  189. INT 03 - Soft-ICE - BACK DOOR COMMANDS - EXECUTE Soft-ICE COMMAND
  190.     AX = 0911h
  191.     SI = magic value 4647h ('FG')
  192.     DI = magic value 4A4Dh ('JM')
  193.     DS:DX -> ASCIZ command string (max 100 bytes, 0Dh OK)
  194. --------G-030912-----------------------------
  195. INT 03 - Soft-ICE - BACK DOOR COMMANDS - GET BREAKPOINT INFORMATION
  196.     AX = 0912h
  197.     SI = magic value 4647h ('FG')
  198.     DI = magic value 4A4Dh ('JM')
  199. Return: BH = entry number of last breakpoint set
  200.     BL = type of last breakpoint set
  201.         00h BPM (breakpoint register types)
  202.         01h I/O
  203.         02h INTerrupt
  204.         03h BPX (INT 03h-style breakpoint)
  205.         04h reserved
  206.         05h range
  207.     DH = entry number of last breakpoint to be triggered
  208.     DL = type of last triggered breakpoint (see above)
  209. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  210. SeeAlso: AX=0913h,AX=0914h
  211. --------G-030913-----------------------------
  212. INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - SET Soft-ICE BREAKPOINT
  213.     AX = 0913h
  214.     SI = magic value 4647h ('FG')
  215.     DI = magic value 4A4Dh ('JM')
  216.     DS:DX -> breakpoint structure (see below)
  217. Return: AX = status
  218.         00h successful
  219.         BX = breakpoint number
  220.         03h breakpoint table full
  221.         06h memory limit error
  222.         07h I/O limit error
  223.         09h range limit error
  224.         16h duplicate breakpoint
  225. SeeAlso: AX=0912h,AX=0914h
  226.  
  227. Format of breakpoint structure:
  228. Offset    Size    Description
  229.  00h    BYTE    breakpoint type (see below)
  230.  01h    DWORD    breakpoint address 1
  231.         (lower range limit for memory BPs, interrupt # for interrupt
  232.         BPs, address of BP for execution BPs, I/O address (only word)
  233.         for I/O BPs)
  234.  05h    DWORD    breakpoint address 2
  235.         (upper range limit for memory BPs,
  236.         optional value to check for for interrupt BPs,
  237.         overlay number (0 = root) for execution BPs)
  238.  09h    DWORD    breakpoint address 3
  239.  0Dh    BYTE    breakpoint mode 1 (see below)
  240.         (for interrupt BPs = register to check
  241.              00h  no value checking
  242.              01h  check AL
  243.              02h  check AH
  244.              03h  check AX)
  245.  0Eh    BYTE    breakpoint mode 2 (see below)
  246.  0Fh    BYTE    breakpoint size (00h byte, 01h word, 03h dword)
  247.  10h    BYTE    breakpoint pass count before program stop
  248.  11h    BYTE    breakpoint state
  249. Note:    all unused fields should contain zeros
  250.  
  251. Values for breakpoint type:
  252.  00h    memory location
  253.  01h    memory range
  254.  03h    I/O
  255.  04h    interrupt
  256.  05h    execution break
  257.  
  258. Values for breakpoint mode:
  259.  01h    read
  260.  02h    write
  261.  04h    execution
  262. --------G-030914-----------------------------
  263. INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - REMOVE Soft-ICE BREAKPOINT
  264.     AX = 0914h
  265.     SI = magic value 4647h ('FG')
  266.     DI = magic value 4A4Dh ('JM')
  267.     BX = breakpoint number (returned by AX=0913h)
  268. Return: BX = ???
  269. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  270. SeeAlso: AX=0912h,AX=0913h
  271. --------C-04---------------------------------
  272. INT 04 - CPU-generated - INTO DETECTED OVERFLOW
  273. Desc:    the INTO instruction will generate this interrupt if OF (Overflow Flag)
  274.       is set; otherwise, INTO is effectively a NOP
  275. Note:    may be used for convenient overflow testing (to prevent errors from
  276.       propagating) instead of JO or a JNO/JMP combination
  277. SeeAlso: INT 00
  278. --------B-05---------------------------------
  279. INT 05 - PRINT SCREEN
  280. Desc:    dump the current text screen to the first printer
  281. Notes:    normally invoked by the INT 09 handler when PrtSc key is pressed, but
  282.       may be invoked directly by applications
  283.     byte at 0050h:0000h contains status used by default handler
  284.       00h not active
  285.       01h PrtSc in progress
  286.       FFh last PrtSc encountered error
  287.     default handler is at F000h:FF54h in IBM PC and 100%-compatible BIOSes
  288. SeeAlso: INT 10/AH=12h/BL=20h
  289. --------C-05---------------------------------
  290. INT 05 - CPU-generated (80186+) - BOUND RANGE EXCEEDED
  291. Desc:    generated by BOUND instruction when the value to be tested is less than
  292.       the indicated lower bound or greater than the indicated upper bound.
  293. Note:    returning from this interrupt re-executes the failing BOUND instruction
  294. --------P-05454A-----------------------------
  295. INT 05 U - PSPS v2.01 - EJECT PAGE
  296.     AX = 454Ah ('EJ')
  297. Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
  298.       Technologies
  299. Note:    sends a ^D to the current printer
  300. SeeAlso: AX=4E57h,AX=5053h,AX=554Eh
  301. --------P-054E57-----------------------------
  302. INT 05 U - PSPS v2.01 - SET PARAMETERS
  303.     AX = 4E57h ('NW')
  304.     ES:SI -> 11-byte buffer containing new settings
  305. Return: buffer filled
  306. SeeAlso: AX=454Ah,AX=5053h,INT 17/AH=63h
  307. --------P-055053-----------------------------
  308. INT 05 U - PSPS v2.01 - GET PARAMETERS
  309.     AX = 5053h ('PS')
  310.     ES:SI -> 11-byte buffer for settings
  311. Return: buffer filled
  312. SeeAlso: AX=4E57h,AX=554Eh,INT 17/AH=64h
  313. --------P-05554E-----------------------------
  314. INT 05 U - PSPS v2.01 - UNINSTALL
  315.     AX = 554Eh ('UN')
  316. Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
  317.       Technologies
  318. SeeAlso: AX=454Ah,AX=4E57h,INT 17/AH=62h
  319. --------C-06---------------------------------
  320. INT 06 - CPU-generated (80286+) - INVALID OPCODE
  321. Desc:    this interrupt is generated when the CPU attempts to execute an
  322.       invalid opcode (most protected-mode instructions are considered
  323.       invalid in real mode) or a BOUND, LDS, LES, or LIDT instruction
  324.       which specifies a register rather than a memory address
  325. Notes:    return address points to beginning of invalid instruction
  326.     with proper programming, this interrupt may be used to emulate
  327.       instructions which do not exist; many 386 BIOSes emulate the 80286
  328.       undocumented LOADALL instruction which was removed from the 80386+
  329.     generated by the 80386+ when the LOCK prefix is used with instructions
  330.       other than BTS, BTR, BTC, XCHG, XADD (486), CMPXCHG (486), INC, DEC,
  331.       NOT, NEG, ADD, ADC, SUB, SBB, AND, OR, or XOR, or any instruction
  332.       not accessing memory.
  333. SeeAlso: INT 0C"CPU",INT 0D"CPU"
  334. --------b-06---------------------------------
  335. INT 06 C - HP 95LX - SLEEP/WAKEUP
  336. Desc:    this interrupt is called just before going into light or deep
  337.       (shutdown) sleep and just after returning from light or deep sleep
  338. SeeAlso: INT 0B"HP 95LX",INT 15/AX=4DD4h,INT 15/AH=4Eh
  339. --------C-07---------------------------------
  340. INT 07 - CPU-generated (80286+) - PROCESSOR EXTENSION NOT AVAILABLE
  341. Desc:    this interrupt is automatically called if a coprocessor instruction is
  342.       encountered when no coprocessor is installed
  343. Note:    can be used to emulate a numeric coprocessor in software
  344. SeeAlso: INT 09"MATH UNIT PROTECTION"
  345. --------H-08---------------------------------
  346. INT 08 - IRQ0 - SYSTEM TIMER
  347. Desc:    generated 18.2 times per second by channel 0 of the 8254 system timer,
  348.       this interrupt is used to keep the time-of-day clock updated
  349. Notes:    programs which need to be invoked regularly should use INT 1C unless
  350.       they need to reprogram the timer while still keeping the time-of-day
  351.       clock running at the proper rate
  352.     default handler is at F000h:FEA5h in IBM PC and 100%-compatible BIOSes
  353.     may be masked by setting bit 0 on I/O port 21h
  354. SeeAlso: INT 1C,INT 4A,INT 50"DESQview",INT 58"DoubleDOS",INT 70,INT 78"GO32"
  355. SeeAlso: INT D8"Screen Thief"
  356. --------C-08---------------------------------
  357. INT 08 - CPU-generated (80286+) - DOUBLE EXCEPTION DETECTED
  358. Desc:    called when multiple exceptions occur on one instruction, or an
  359.       exception occurs in an exception handler
  360. Notes:    called in protected mode if an interrupt above the defined limit of
  361.       the interrupt vector table occurs
  362.     return address points at beginning of instruction with errors or the
  363.       beginning of the instruction which was about to execute when the
  364.       external interrupt caused the exception
  365.     if an exception occurs in the double fault handler, the CPU goes into
  366.       SHUTDOWN mode (which circuitry in the PC/AT converts to a reset);
  367.       this "triple fault" is a faster way of returning to real mode on
  368.       many 80286 machines than the standard keyboard controller reset
  369. --------H-09---------------------------------
  370. INT 09 - IRQ1 - KEYBOARD DATA READY
  371. Desc:    this interrupt is generated when data is received from the keyboard.
  372.       This is normally a scan code (from either a keypress *or* a key
  373.       release), but may also be an ACK or NAK of a command on AT-class
  374.       keyboards.
  375. Notes:    this IRQ may be masked by setting bit 1 on I/O port 21h
  376.     if the BIOS supports an enhanced (101/102-key) keyboard, it calls
  377.       INT 15/AH=4Fh after reading the scan code from the keyboard and
  378.       before further processing; all further processing uses the scan
  379.       code returned from INT 15/AH=4Fh
  380.     the default interrupt handler is at F000h:E987h in 100%-compatible
  381.       BIOSes
  382.     the interrupt handler performs the following actions for certain
  383.       special keystrokes:
  384.         Ctrl-Break     clear keyboard buffer, place word 0000h in buffer,
  385.              invoke INT 1B, and set flag at 0040h:0071h
  386.         SysRq     invoke INT 15/AH=85h
  387.         Ctrl-Numlock place system in a tight wait loop until next INT 09
  388.         Ctrl-Alt-Del jump to BIOS startup code (either F000h:FFF0h or the
  389.                destination of the jump at that address)
  390.         Shift-PrtSc     invoke INT 05
  391.     DRDOS hooks this interrupt to control the cursor shape (underscore/
  392.       half block) for overwrite/insert mode
  393.     DR Multiuser DOS hooks this interrupt for cursor shape control and to
  394.       control whether Ctrl-Alt-Del reboots the current session or the
  395.       entire system
  396. SeeAlso: INT 05,INT 0B"HP 95LX",INT 15/AH=4Fh,INT 15/AH=85h,INT 16,INT 1B
  397. SeeAlso: INT 2F/AX=A901h,INT 51"DESQview",INT 59"DoubleDOS",INT 79"GO32"
  398.  
  399. Values for scan code:
  400.  01h    Esc         31h    N
  401.  02h    1 !         32h    M
  402.  03h    2 @         33h    , <         63h    F16
  403.  04h    3 #         34h    . >         64h    F17
  404.  05h    4 $         35h    / ?         65h    F18
  405.  06h    5 %         36h    Right Shift     66h    F19
  406.  07h    6 ^         37h    Grey*         67h    F20
  407.  08h    7 &         38h    Alt         68h    F21
  408.  09h    8 *         39h    SpaceBar     69h    F22
  409.  0Ah    9 (         3Ah    CapsLock     6Ah    F23
  410.  0Bh    0 )         3Bh    F1         6Bh    F24
  411.  0Ch    - _         3Ch    F2         6Ch    --
  412.  0Dh    = +         3Dh    F3         6Dh    EraseEOF
  413.  0Eh    Backspace     3Eh    F4
  414.  0Fh    Tab         3Fh    F5         6Fh    Copy/Play
  415.  10h    Q         40h    F6
  416.  11h    W         41h    F7
  417.  12h    E         42h    F8         72h    CrSel
  418.  13h    R         43h    F9
  419.  14h    T         44h    F10         74h    ExSel
  420.  15h    Y         45h    NumLock         75h    --
  421.  16h    U         46h    ScrollLock     76h    Clear
  422.  17h    I         47h    Home
  423.  18h    O         48h    UpArrow
  424.  19h    P         49h    PgUp
  425.  1Ah    [ {         4Ah    Grey-
  426.  1Bh    ] }         4Bh    LeftArrow
  427.  1Ch    Enter         4Ch    Keypad 5
  428.  1Dh    Ctrl         4Dh    RightArrow
  429.  1Eh    A         4Eh    Grey+
  430.  1Fh    S         4Fh    End
  431.  20h    D         50h    DownArrow     E0h    prefix code
  432.  21h    F         51h    PgDn         E1h    prefix code
  433.  22h    G         52h    Ins         FAh    ACK
  434.  23h    H         53h    Del         FEh    RESEND
  435.  24h    J         54h    SysRq         FFh    kbd error/buffer full
  436.  25h    K
  437.  26h    L         56h    left \| (102-key)
  438.  27h    ; :         57h    F11
  439.  28h    ' "         58h    F12
  440.  29h    ` ~
  441.  2Ah    Left Shift     5Ah    PA1
  442.  2Bh    \ |         5Bh    F13
  443.  2Ch    Z         5Ch    F14
  444.  2Dh    X         5Dh    F15
  445.  2Eh    C
  446.  2Fh    V
  447.  30h    B
  448. Note:    scan codes 56h-E1h are only available on the extended (101/102-key)
  449.       keyboard and Host Connected (122-key) keyboard; scan codes 5Ah-76h
  450.       are only available on the 122-key keyboard
  451. --------C-09---------------------------------
  452. INT 09 - CPU-generated (80286,80386) - PROCESSOR EXTENSION PROTECTION ERROR
  453. Desc:    called if the coprocessor attempts to access memory outside a segment
  454.       boundary; it may occur at an arbitrary time after the coprocessor
  455.       instruction was issued
  456. Note:    until the condition is cleared or the coprocessor is reset, the only
  457.       coprocessor instruction which may be used is FNINIT; WAIT or other
  458.       coprocessor instructions will cause a deadlock because the
  459.       coprocessor is still busy waiting for data
  460. SeeAlso: INT 07"CPU"
  461. --------*-09---------------------------------
  462. INT 09 P - internal hardware - RESERVED BY Intel (80486)
  463. Note:    this exception has been moved to INT 0D
  464. SeeAlso: INT 09"MATH",INT 0D
  465. --------H-0A---------------------------------
  466. INT 0A - IRQ2 - LPT2 (PC), VERTICAL RETRACE INTERRUPT (EGA,VGA)
  467. Notes:    the TOPS and PCnet adapters use this interrupt request line by default
  468.     DOS 3.2 revectors IRQ2 to a stack-switching routine
  469.     on ATs and above, the physical data line for IRQ2 is labeled IRQ9 and
  470.       connects to the slave 8259.  The BIOS redirects the interrupt for
  471.       IRQ9 back here.
  472.     under DESQview, only the INT 15h vector and BASIC segment address (the
  473.       word at 0000h:0510h) may be assumed to be valid for the handler's
  474.       process
  475.     many VGA boards do not implement the vertical retrace interrupt,
  476.       including the IBM VGA Adapter where the traces are either cut or
  477.       removed
  478. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
  479. --------H-0A---------------------------------
  480. INT 0A - IRQ2 - Tandy 1000-series HARD DISK
  481. Note:    may be masked by setting bit 2 on I/O port 21h
  482. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71
  483. --------H-0A---------------------------------
  484. INT 0A - IRQ2 - ROLAND MPU MIDI INTERFACE
  485. Note:    newer Roland cards and MIDI interfaces by other manufacturers use
  486.       a jumper-selectable IRQ, but software and hardware generally defaults
  487.       to IRQ2
  488. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
  489. --------C-0A---------------------------------
  490. INT 0A P - CPU-generated (80286+) - INVALID TASK STATE SEGMENT
  491. Desc:    automatically called during a task switch if the new TSS specified by
  492.       the task gate is invalid for any of the following reasons:
  493.         TSS limit is less than 43 (80286) or 103 (80386/80486)
  494.         LDT selector invalid or segment not present
  495.         null SS selector, or SS selector outside LDT/GDT limit
  496.         stack segment is read-only
  497.         stack segment DPL differs from new CPL, or RPL <> CPL
  498.         CS selector is outside LDT/GDT limit or not code
  499.         non-conforming code segment's DPL differs from CPL
  500.         conforming code segment's DPL > CPL
  501.         DS/ES selectors outside LDT/GDT limit or not readable segments
  502. Note:    the handler must use a task gate in order to have a valid TSS under
  503.       which to execute; it must also reset the busy bit in the new TSS
  504. SeeAlso: INT 0B"CPU"
  505. --------H-0B---------------------------------
  506. INT 0B - IRQ3 - SERIAL COMMUNICATIONS (COM2)
  507. Desc:    automatically asserted by the UART when COM2 needs attention, if the
  508.       UART has been programmed to generate interrupts
  509. Notes:    the TOPS and PCnet adapters use this interrupt request line as an
  510.       alternate
  511.     on PS/2s, COM2 through COM8 share this interrupt; on many PC's, COM4
  512.       shares this interrupt
  513.     may be masked by setting bit 3 on I/O port 21h
  514. SeeAlso: INT 0C"COM1",INT 53"DESQview",INT 5B"DoubleDOS",INT 7B"GO32"
  515. --------C-0B---------------------------------
  516. INT 0B P - CPU-generated (80286+) - SEGMENT NOT PRESENT
  517. Desc:    generated when loading a segment register if the segment descriptor
  518.       indicates that the segment is not currently in memory, unless the
  519.       segment is an LDT (see INT 0A"CPU") or stack segment (see
  520.       INT 0C"CPU") needed by a task switch
  521. Note:    may be used to implement virtual memory by loading in segments as they
  522.       are accessed, clearing the "not present" bit after loading
  523. SeeAlso: INT 0A"CPU",INT 0E"hardware"
  524. --------h-0B---------------------------------
  525. INT 0B - HP 95LX - LOW-LEVEL KEYBOARD HANDLER
  526. Desc:    this is the lowest-level keyboard handler on an HP 95LX palmtop
  527. Note:    debounces key, places the keycode in I/O register 60h, and calls INT 09
  528. SeeAlso: INT 09,INT 0D"HP 95LX",INT 15/AX=4DD4h
  529. --------H-0C---------------------------------
  530. INT 0C - IRQ4 - SERIAL COMMUNICATIONS (COM1)
  531. Desc:    automatically asserted by the UART when COM1 needs attention, if the
  532.       UART has been programmed to generate interrupts
  533. BUG:    this vector is modified but not restored by Direct Access v4.0, and
  534.       may be left dangling by other programs written with the same version
  535.       of compiled BASIC
  536. Notes:    on many PC's, COM3 shares this interrupt
  537.     may be masked by setting bit 4 on I/O port 21h
  538. SeeAlso: INT 0B"COM2",INT 54"DESQview",INT 5C"DoubleDOS",INT 7C"GO32"
  539. --------C-0C---------------------------------
  540. INT 0C - CPU-generated (80286+) - STACK FAULT
  541. Desc:    this interrupt is generated in protected mode on a stack overflow or
  542.       underflow, or if an inter-level transition or task switch references
  543.       a stack segment marked "not present"; it is generated in real mode
  544.       on accessing a word operand at SS:FFFFh
  545. Note:    the 80286 will shut down in real mode if SP=1 before a push.  On the
  546.       PC AT and compatibles, external circuitry generates a reset on
  547.       shutdown.
  548. SeeAlso: INT 0B"CPU",INT 0D"CPU"
  549. --------I-0C---------------------------------
  550. INT 0C - IBM SYSTEM 36/38 WORKSTATION EMULATION - API POINTER
  551. Desc:    the IBM System 36/38 emulator may be invoked through a private API,
  552.       whose entry point address is offset 100h in the segment pointed at
  553.       by this vector
  554.  
  555. Call the API entry point with
  556.     AH = function
  557.         03h update screen
  558.         05h select next session
  559.         AL = session number (00h-03h)
  560.         Return: AL = session type code
  561.                 00h not active
  562.                 01h display session
  563.                 02h printer session
  564.                 FEh invalid session number
  565.             DS = requested session's data segment (0 if not active)
  566. Return: ???
  567.  
  568. Format of emulator's data area (offset from interrupt handler's segment):
  569. Offset    Size    Description
  570. 13Eh    BYTE    bit flags for status line indicators turned on since this byte
  571.         last zerod
  572. 13Fh    BYTE    bit flags for status line indicators turned off since this
  573.         byte last set to FFh
  574. 140h    WORD    offset of EBCDIC to ASCII translation
  575. 146h    WORD    offset of EBCDIC screen buffer
  576. 148h    WORD    offset of EC (engineering change) level signature
  577. 150h    BYTE    "KEYI"
  578. 151h    BYTE    5250 key scan code to be sent to remote
  579. 15Bh    BYTE    "SYSAV"
  580. 15Dh    BYTE    5250 cursor column
  581. 15Eh    BYTE    5250 cursor row
  582. 167h    BYTE    "DVCTAD"
  583. 178h    BYTE    "FLAGS"
  584. 184h    BYTE    "SESSNOAD"
  585. 193h    BYTE    "STNAD"
  586. 198h    BYTE    "NSDS"
  587. --------H-0D---------------------------------
  588. INT 0D - IRQ5 - FIXED DISK (PC,XT), LPT2 (AT), reserved (PS/2)
  589. Notes:    under DESQview, only the INT 15h vector and BASIC segment address (the
  590.       word at 0000h:0510h) may be assumed to be valid for the handler's
  591.       process
  592.     may be masked by setting bit 5 on I/O port 21h
  593. SeeAlso: INT 0E"IRQ6",INT 0F"IRQ7",INT 55"DESQview",INT 5D"DoubleDOS"
  594. SeeAlso: INT 7D"GO32"
  595. --------H-0D---------------------------------
  596. INT 0D - IRQ5 - Tandy 1000 60 Hz RAM REFRESH
  597. Desc:    used to ensure that the dynamic RAM retains its contents
  598. SeeAlso: INT 55
  599. --------h-0D---------------------------------
  600. INT 0D - HP 95LX - INFRARED INTERRUPT
  601. Desc:    this interrupt is used to perform communications over the infrared
  602.       data link
  603. SeeAlso: INT 0B"HP 95LX",INT 0E"HP 95LX",INT 15/AX=4DD4h
  604. --------C-0D---------------------------------
  605. INT 0D - CPU-generated (80286+) - GENERAL PROTECTION VIOLATION
  606. Desc:    the CPU generates this interrupt when it detects a protection violation
  607.       which does not fit under any other category having a separate
  608.       interrupt
  609. Notes:    called in real mode when
  610.         an instruction accesses a memory operand extending beyond offset
  611.           FFFFh (i.e. WORD at FFFFh or DWORD at FFFDh or higher) in segment
  612.           CS, DS, ES, FG, or GS
  613.         a PUSH MEM or POP MEM instruction contains an invalid bit encoding
  614.           in the second byte
  615.         an instruction exceeds the maximum length allowed (10 bytes for
  616.           80286, 15 bytes for 80386/80486)
  617.         an instruction wraps from offset FFFFh to offset 0000h
  618.     called in protected mode on protection violations not covered by INT 06
  619.       through INT 0C, including
  620.         segment limit violations
  621.         write to read-only segments
  622.         accesses using null DS or ES selectors
  623.         accesses to segments with privilege greater than CPL
  624.         wrong descriptor type
  625.     called on 80486 protected-mode floating-point protection fault
  626. SeeAlso: INT 09"80486",INT 0C"STACK"
  627. --------H-0E---------------------------------
  628. INT 0E - IRQ6 - DISKETTE CONTROLLER
  629. Desc:    this interrupt is generated by the floppy disk controller on
  630.       completion of an operation
  631. Notes:    default handler is at F000h:EF57h in IBM PC and 100%-compatible BIOSes
  632.     may be masked by setting bit 6 on I/O port 21h
  633. SeeAlso: INT 0D"IRQ5",INT 56"DESQview",INT 5E"DoubleDOS",INT 7E"GO32"
  634. --------C-0E---------------------------------
  635. INT 0E - CPU-generated (80386+ native mode) - PAGE FAULT
  636. Desc:    this interrupt is generated in protected and virtual-86 modes on
  637.       attempting to access a 4K memory page whose page table entry has
  638.       the "present" bit cleared
  639. Note:    used to implement virtual memory
  640. SeeAlso: INT 0B"hardware"
  641. --------h-0E---------------------------------
  642. INT 0E - HP 95LX - EXTERNAL CARD INTERRUPT
  643. SeeAlso: INT 0D"HP 95LX",INT 0F"HP 95LX",INT 15/AX=4DD4h
  644. --------H-0F---------------------------------
  645. INT 0F - IRQ7 - PARALLEL PRINTER
  646. Desc:    this interrupt is generated by the LPT1 printer adapter when the
  647.       printer becomes ready
  648. Notes:    most printer adapters do not reliably generate this interrupt
  649.     the 8259 interrupt controller generates an interrupt corresponding to
  650.       IRQ7 when an error condition occurs
  651. SeeAlso: INT 0D"LPT2",INT 57"DESQview",INT 5F"DoubleDOS",INT 7F"GO32"
  652. --------h-0F---------------------------------
  653. INT 0F - HP 95LX - REAL-TIME CLOCK
  654. SeeAlso: INT 0E"HP 95LX",INT 15/AX=4DD4h,INT 70
  655. --------C-10---------------------------------
  656. INT 10 - CPU-generated (80286+) - COPROCESSOR ERROR
  657. Desc:    this interrupt is generated by the CPU when the -ERROR pin is asserted
  658.       by the coprocessor
  659. Note:    AT's and clones usually wire the coprocessor to use IRQ13, but not all
  660.       get it right
  661. SeeAlso: INT 09"hardware",INT 75
  662. --------V-1000-------------------------------
  663. INT 10 - VIDEO - SET VIDEO MODE
  664.     AH = 00h
  665.     AL = mode (see below)
  666. Return: AL = video mode flag (Phoenix BIOS)
  667.         20h mode > 7
  668.         30h modes 0-5 and 7
  669.         3Fh mode 6
  670.     AL = CRT controller mode byte (Phoenix 386 BIOS v1.10)
  671. Desc:    specify the display mode for the currently active display adapter
  672. Notes:    IBM standard modes do not clear the screen if the high bit of AL is set
  673.       (EGA or higher only)
  674.     the Tseng ET4000 chipset is used by the Orchid Prodesigner II, Diamond
  675.       SpeedSTAR VGA, Groundhog Graphics Shadow VGA, Boca Super X VGA,
  676.       Everex EV-673
  677.     the installation check for Ahead adapters is the signature "AHEAD" at
  678.       C000h:0025h
  679.     the installation check for Paradise adapters is the signature "VGA=" at
  680.       C000h:007Dh
  681.     the installation check for Oak Tech OTI-037/057/067/077 chipsets is the
  682.       signature "OAK VGA" at C000h:0008h
  683.     the installation check for ATI adapters is the signature "761295520" at
  684.       C000h:0031h; the byte at C000h:0043h indicates the chipset revision:
  685.         31h for 18800
  686.         32h for 18800-1
  687.         33h for 18800-2
  688.         34h for 18800-4
  689.         35h for 18800-5
  690.       the two bytes at C000h:0040h indicate the adapter type
  691.         "22" EGA Wonder
  692.         "31" VGA Wonder
  693.         "32" EGA Wonder800+
  694.       the byte at C000h:0042h contains feature flags
  695.         bit 1: mouse port present
  696.         bit 4: programmable video clock
  697.       the byte at C000h:0044h contains additional feature flags if chipset
  698.         byte > 30h (see below)
  699.     the installation check for Genoa video adapters is the signature
  700.       77h XXh 99h 66h at C000h:NNNNh, where NNNNh is stored at C000h:0037h
  701.       and XXh is
  702.         00h for Genoa 6200/6300
  703.         11h for Genoa 6400/6600
  704.         22h for Genoa 6100
  705.         33h for Genoa 5100/5200
  706.         55h for Genoa 5300/5400
  707.       for SuperEGA BIOS v2.41+, C000h:0057h contains the product level
  708.       for SuperEGA BIOS v3.0+, C000h:0070h contains the signature
  709.         "EXTMODE", indicating support for extended modes
  710. SeeAlso: AX=0070h,AX=007Eh,AX=10E0h,AX=10F0h,AH=40h,AX=6F05h,AH=FFh"GO32"
  711. SeeAlso: INT 33/AX=0028h,INT 5F/AH=00h,INT 62/AX=0001h
  712. Index:    installation check;Tseng ET4000|installation check;Ahead video cards
  713. Index:    installation check;Oak Technologies|installation check;ATI video cards
  714. Index:    installation check;Paradise video|installation check;Genoa video cards
  715.  
  716. Bitfields for ATI additional feature flags:
  717.  bit 0    70 Hz non-interlaced display
  718.  bit 1    Korean (double-byte) characters
  719.  bit 2    45 MHz memory clock rather than 40 MHz
  720.  bit 3    zero wait states
  721.  bit 4    paged ROMs
  722.  bit 6    no 8514/A monitor support
  723.  bit 7    HiColor DAC
  724.  
  725. Values for video mode:
  726.       text/ text pixel     pixel    colors    disply    scrn  system
  727.       grph resol  box    resoltn        pages    addr
  728.  00h = T   40x25  8x8        16gray       8    B800 CGA,PCjr
  729.      = T   40x25  8x14        16gray       8    B800 EGA
  730.      = T   40x25  8x16          16       8    B800 MCGA
  731.      = T   40x25  9x16          16       8    B800 VGA
  732.  01h = T   40x25  8x8          16       8    B800 CGA,PCjr
  733.      = T   40x25  8x14          16       8    B800 EGA
  734.      = T   40x25  8x16          16       8    B800 MCGA
  735.      = T   40x25  9x16          16       8    B800 VGA
  736.  02h = T   80x25  8x8        16gray       4    B800 CGA,PCjr
  737.      = T   80x25  8x14        16gray       4    B800 EGA
  738.      = T   80x25  8x16          16       4    B800 MCGA
  739.      = T   80x25  9x16          16       4    B800 VGA
  740.  03h = T   80x25  8x8          16       4    B800 CGA,PCjr
  741.      = T   80x25  8x14          16       4    B800 EGA
  742.      = T   80x25  8x16          16       4    B800 MCGA
  743.      = T   80x25  9x16          16       4    B800 VGA
  744.  04h = G   40x25  8x8    320x200       4        B800 CGA,PCjr,EGA,MCGA,VGA
  745.  05h = G   40x25  8x8    320x200     4gray        B800 CGA,PCjr,EGA
  746.      = G   40x25  8x8    320x200       4        B800 MCGA,VGA
  747.  06h = G   80x25  8x8    640x200       2        B800 CGA,PCjr,EGA,MCGA,VGA
  748.  07h = T   80x25  9x14         mono      var    B000 MDA,Hercules,EGA
  749.      = T   80x25  9x16         mono        B000 VGA
  750.  08h = T  132x25  8x8          16        B800 ATI EGA/VGA Wonder [2]
  751.      = T  132x25  8x8         mono        B000 ATI EGA/VGA Wonder [2]
  752.      = G   20x25  8x8    160x200      16             PCjr, Tandy 1000
  753.      = G   90x43  8x8    720x352     mono        B000 Hercules + MSHERC.COM
  754.      = G   90x45  8x8         mono        B000 Hercules + HERKULES [11]
  755.  09h = G   40x25  8x8    320x200      16             PCjr
  756.  0Ah = G   80x25  8x8    640x200       4             PCjr, Tandy 1000
  757.  0Bh =     reserved (used internally by EGA BIOS)
  758.      = G        640x200      16             Tandy 1000 SL/TL
  759.  0Ch =     reserved (used internally by EGA BIOS)
  760.  0Dh = G   40x25  8x8    320x200      16       8    A000 EGA,VGA
  761.  0Eh = G   80x25  8x8    640x200      16       4    A000 EGA,VGA
  762.  0Fh = G   80x25  8x14    640x350     mono       2    A000 EGA,VGA
  763.  10h = G   80x25  8x14    640x350       4       2    A000 64k EGA
  764.      = G        640x350      16        A000 256k EGA,VGA
  765.  11h = G   80x30  8x16    640x480     mono        A000 VGA,MCGA,ATI EGA,ATI VIP
  766.  12h = G   80x30  8x16    640x480     16/256k    A000 VGA,ATI VIP
  767.      = G   80x30  8x16    640x480     16/64        A000 ATI EGA Wonder
  768.      = G        640x480      16             UltraVision+256K EGA
  769.  13h = G   40x25  8x8    320x200 256/256k    A000 VGA,MCGA,ATI VIP
  770.  14h = T  132x25  Nx16          16             XGA, IBM Enhanced VGA [3]
  771.      = T  132x25  8x16 1056x400     16/256k         Cirrus CL-GD5420/5422/5426
  772.      = G   80x25  8x8    640x200                 Lava Chrome II EGA
  773.      = G        640x400      16             Tecmar VGA/AD
  774.  15h = G   80x25  8x14    640x350                 Lava Chrome II EGA
  775.  16h = G   80x25  8x14    640x350                 Lava Chrome II EGA
  776.      = G        800x600      16             Tecmar VGA/AD
  777.  17h = T  132x25                     Tecmar VGA/AD
  778.      = T   80x43  8x8    640x350      16       4    B800 Tseng ET4000 BIOS [10]
  779.      = G   80x34  8x14    640x480                 Lava Chrome II EGA
  780.  18h = T   80x30  9x16    720x480      16       1    A000 Realtek RTVGA [12]
  781.      = T  132x25         mono        B000 Cirrus 5320 chipset
  782.      = T  132x44  8x8         mono        B000 Tseng Labs EVA
  783.      = T  132x44  9x8  1188x352      4gray       2    B000 Tseng ET3000 chipset
  784.      = T  132x44  8x8         16/256       2    B000 Tseng ET4000 chipset
  785.      = G   80x34  8x14    640x480                 Lava Chrome II EGA
  786.      = G           1024x768      16             Tecmar VGA/AD
  787.  19h = T   80x43  9x11    720x473      16       1    A000 Realtek RTVGA [12]
  788.      = T  132x25  8x14         mono        B000 Tseng Labs EVA
  789.      = T  132x25  9x14 1188x350      4gray       4    B000 Tseng ET3000 chipset
  790.      = T  132x25  8x14         16/256       4    B000 Tseng ET4000 chipset
  791.      = T  132x34         mono        B000 Cirrus 5320 chipset
  792.  1Ah = T   80x60  9x8    720x480      16       1    A000 Realtek RTVGA [12]
  793.      = T  132x28  8x13         mono        B000 Tseng Labs EVA
  794.      = T  132x28  9x13 1188x364      4gray       4    B000 Tseng ET3000 chipset
  795.      = T  132x28  8x13         16/256       4    B000 Tseng ET4000 chipset
  796.      = T  132x44         mono        B000 Cirrus 5320 chipset
  797.      = G        640x350     256             Tecmar VGA/AD
  798.  1Bh = T  132x25  9x14 1188x350      16       1    A000 Realtek RTVGA [12]
  799.      = G        640x400     256             Tecmar VGA/AD
  800.  1Ch = T  132x25                     Cirrus 5320 chipset
  801.      = T  132x30  9x16 1188x480      16       1    A000 Realtek RTVGA [12]
  802.      = G        640x480     256             Tecmar VGA/AD
  803.  1Dh = T  132x43                     Cirrus 5320 chipset
  804.      = T  132x43  9x11 1188x473      16       1    A000 Realtek RTVGA [12]
  805.      = G        800x600     256             Tecmar VGA/AD
  806.  1Eh = T  132x44                     Cirrus 5320 chipset
  807.      = T  132x60  9x8  1188x480      16       1    A000 Realtek RTVGA [12]
  808.  1Fh = G  100x75  8x8    800x600      16       1    A000 Realtek RTVGA
  809.  20h = T  132x25          16             Avance Logic AL2101
  810.      = G        240x128            B000 HP 95LX
  811.      = G  120x45  8x16    960x720      16       1    A000 Realtek RTVGA
  812.  21h = T  132x30          16             Avance Logic AL2101
  813.      = T  132x44  9x9  1188x396     16/256k    B800 WD90C
  814.      = T  132x44  9x9          16        B800 Diamond Speedstar 24X
  815.      = T  132x60          16       2    B800 Tseng ET4000 chipset [10]
  816.      = G   80x43  8x8    720x348     mono        B000 DESQview 2.x+Hercules [4]
  817.      = G  128x48  8x16 1024x768      16       1    A000 Realtek RTVGA [12]
  818.  22h = T  132x43                     Allstar Peacock (VGA)
  819.      = T  132x43          16             Avance Logic AL2101
  820.      = T  132x44  8x8                     Tseng Labs EVA
  821.      = T  132x44  9x8  1188x352     16/256k   2    B800 Tseng ET3000 chipset
  822.      = T  132x44  8x8         16/256k   2    B800 Tseng ET4000 chipset
  823.      = T  132x44  8x8                     Ahead Systems EGA2001
  824.      = T  132x44  8x8          16       2    B800 Ahead B
  825.      = T  132x44          16             Orchid Prodesigner VGA
  826.      = G   80x43  8x8    720x348     mono        B800 DESQview 2.x+Hercules [4]
  827.      = G   96x64  8x16    768x1024  16       1    A000 Realtek RTVGA
  828.  23h = T  132x25  6x14                     Tseng Labs EVA
  829.      = T  132x25  9x14 1188x350     16/256k   4    B800 Tseng ET3000 chipset
  830.      = T  132x25  8x14         16/256       4    B800 Tseng ET4000 chipset
  831.      = T  132x25  8x14                     Ahead Systems EGA2001
  832.      = T  132x25  8x14          16       4    B800 Ahead B
  833.      = T  132x25  8x8          16        B800 ATI EGA Wonder,ATI VIP
  834.      = T  132x25                     Cirrus 5320 chipset
  835.      = T  132x28                     Allstar Peacock (VGA)
  836.      = T  132x28          16             Orchid Prodesigner VGA
  837.      = T  132x60          16             Avance Logic AL2101
  838.      = G  128x48  8x16 1024x768       4       1    A000 Realtek RTVGA
  839.  24h = T   80x30          16             Avance Logic AL2101
  840.      = T  132x25                     Allstar Peacock (VGA)
  841.      = T  132x25          16             Orchid Prodesigner VGA
  842.      = T  132x28  6x13                     Tseng Labs EVA
  843.      = T  132x28  9x13 1188x364     16/256k   4    B800 Tseng ET3000 chipset
  844.      = T  132x28  8x13         16/256k   4    B800 Tseng ET4000 chipset
  845.      = T  132x28  8x12          16       1    B800 Ahead B
  846.      = T  132x28                     Cirrus 5320 chipset
  847.      = G   64x32  8x16    512x512     256       1    A000 Realtek RTVGA
  848.  25h = T   80x43          16             Avance Logic AL2101
  849.      = G   80x60  8x8    640x480                 Tseng Labs EVA
  850.      = G   80x60  8x8    640x480     16/256k   1    A000 Tseng ET3000/4000 chipset
  851.      = G        640x480      16             VEGA VGA
  852.      = G   80x60  8x8    640x480      16        A000 Orchid Prodesigner VGA
  853.      = G   80x60  8x8    640x480      16       1    A000 Ahead B (same as 26h)
  854.      = G        640x480      16             NEC GB-1
  855.      = G        640x480      16             Cirrus 5320 chipset
  856.      = G        640x400     256             Realtek RTVGA
  857.  26h = T   80x60  8x8                     Tseng Labs EVA
  858.      = T   80x60  8x8    640x480     16/256k   3    B800 Tseng ET3000/4000 chipset
  859.      = T   80x60                     Allstar Peacock (VGA)
  860.      = T   80x60          16             Orchid ProDesigner VGA
  861.      = T   80x60          16             Avance Logic AL2101
  862.      = G   80x60  8x8    640x480                 Ahead Systems EGA2001
  863.      = G   80x60  8x8    640x480      16       1    A000 Ahead B (same as 25h)
  864.      = G        640x480     256             Realtek RTVGA
  865.  27h = T  132x25  8x8         mono        B000 ATI EGA Wonder,ATI VIP
  866.      = G        720x512      16             VEGA VGA
  867.      = G        720x512      16             Genoa
  868.      = G  100x75  8x8    800x600     256       1    A000 Realtek RTVGA [12]
  869.      = G        960x720      16             Avance Logic AL2101
  870.  28h = T  ???x???                     VEGA VGA
  871.      = G        512x512     256             Avance Logic AL2101
  872.      = G           1024x768     256             Realtek RTVGA (1meg)
  873.  29h = G        640x400     256             Avance Logic AL2101
  874.      = G        800x600      16             VEGA VGA
  875.      = G  100x37  8x16    800x600      16        A000 Orchid
  876.      = G        800x600      16        A000 STB,Genoa,Sigma
  877.      = G        800x600      16             Allstar Peacock (VGA)
  878.      = G  100x37  8x16    800x600     16/256k   1    A000 Tseng ET3000/4000 chipset
  879.      = G        800x600     ???             EIZO MDB10
  880.      = G        800x600      16             Cirrus 5320 chipset
  881.      = G           1024x1024 256             Realtek RTVGA BIOS v3.C10
  882.  2Ah = T  100x40                     Allstar Peacock (VGA)
  883.      = T  100x40  8x16          16             Orchid Prodesigner VGA
  884.      = T  100x40  8x15    800x600     16/256k   4    B800 Tseng ET3000/4000 chipset
  885.      = G        640x480     256             Avance Logic AL2101
  886.      = G           1280x1024  16             Realtek RTVGA
  887.  2Bh = G        800x600      16             Avance Logic AL2101
  888.  2Ch = G        800x600     256             Avance Logic AL2101
  889.  2Dh = G        640x350     256             VEGA VGA
  890.      = G        640x350 256/256k    A000 Orchid, Genoa, STB
  891.      = G   80x25  8x14    640x350 256/256k   1    A000 Tseng ET3000/4000 chipset
  892.      = G        640x350     256             Cirrus 5320 chipset
  893.      = G        768x1024  16             Avance Logic AL2101
  894.  2Eh = G        640x480     256             VEGA VGA
  895.      = G   80x30  8x16    640x480 256/256k    A000 Orchid
  896.      = G        640x480 256/256k    A000 STB,Genoa,Sigma
  897.      = G   80x30  8x16    640x480 256/256k   1    A000 Tseng ET3000/4000 chipset
  898.      = G        768x1024 256             Avance Logic AL2101
  899.  2Fh = T  160x50  8x8  1280x400      16       4    B800 Ahead B (Wizard/3270)
  900.      = G        720x512     256             VEGA VGA
  901.      = G        720x512     256             Genoa
  902.      = G   80x25  8x16    640x400 256/256k   1    A000 Tseng ET4000 chipset
  903.      = G           1024x768       4             Avance Logic AL2101
  904.  30h = G        800x600     256             VEGA VGA
  905.      = G  100x37  8x16    800x600 256/256k    A000 Orchid
  906.      = G        800x600 256/256k    A000 STB,Genoa,Sigma
  907.      = G        720x350       2             3270 PC
  908.      = G        800x600     256             Cardinal
  909.      = G        ???x???            B800 AT&T 6300
  910.      = G  100x37  8x16    800x600 256/256k   1    A000 Tseng ET3000/4000 chipset
  911.      = G           1024x768      16             Avance Logic AL2101
  912.  31h = G           1024x768     256             Avance Logic AL2101
  913.  32h = T   80x34  8x10          16       4    B800 Ahead B (Wizard/3270)
  914.  33h = T  132x44  8x8          16        B800 ATI EGA Wonder,ATI VIP
  915.      = T   80x34  8x8          16       4    B800 Ahead B (Wizard/3270)
  916.  34h = T   80x66  8x8          16       4    B800 Ahead B (Wizard/3270)
  917.  36h = G        960x720      16             VEGA VGA
  918.      = G        960x720      16             STB
  919.      = G        960x720      16             Tseng ET3000 only
  920.      = G           1280x1024  16             Avance Logic AL2101
  921.  37h = T  132x44  8x8         mono        B800 ATI EGA Wonder,ATI VIP
  922.      = G           1024x768      16             VEGA VGA
  923.      = G  128x48  8x16 1024x768      16        A000 Orchid
  924.      = G           1024x768      16        A000 STB,Genoa,Sigma
  925.      = G           1024x768      16             Definicon
  926.      = G  128x48  8x16 1024x768      16       1    A000 Tseng ET3000/4000 chipset
  927.      = G           1280x1024 256             Avance Logic AL2101
  928.  38h = G           1024x768     256             STB VGA/EM-16 Plus (1MB)
  929.      = G  128x48  8x16 1024x768 256/256k   1    A000 Tseng ET4000 chipset
  930.      = G           1024x768     256             Orchid ProDesigner II
  931.  3Dh = G           1280x1024  16             Definicon
  932.      = G  128x64  8x16 1280x1024  16       1    A000 Tseng ET4000 v3.00 [1,7]
  933.  3Eh = G           1280x961      16             Definicon
  934.  40h = T   80x43                     VEGA VGA, Tecmar VGA/AD
  935.      = T   80x43                     Video7 V-RAM VGA
  936.      = T   80x43                     Tatung VGA
  937.      = T  100x30          16             MORSE VGA
  938.      = T  100x30                     Cirrus 510/520 chipset
  939.      = T   80x25    720x350     mono             Genoa SuperEGA BIOS 3.0+
  940.      = G        320x200      64K             Avance Logic AL2101
  941.      = G   80x25  8x16    640x400       2       1    B800 AT&T 6300, AT&T VDC600
  942.      = G   80x25  8x16    640x400       2       1    B800 Olivetti Quaderno
  943.      = G   80x25  8x16    640x400       2       1    B800 Compaq Portable
  944.  41h = T  132x25                     VEGA VGA
  945.      = T  132x25                     Tatung VGA
  946.      = T  132x25                     Video7 V-RAM VGA
  947.      = T  100x50          16             MORSE VGA
  948.      = T  100x50                     Cirrus 510/520 chipset
  949.      = T   80x34  9x14    720x476     16/256k    B800 WD90C
  950.      = T   80x34  9x14          16        B800 Diamond Speedstar 24X
  951.      = G        512x512      64K             Avance Logic AL2101
  952.      = G        640x200      16       1         AT&T 6300
  953.      = G   80x25    720x348     mono        B000 Genoa SuperEGA BIOS 3.0+
  954.  42h = T  132x43                     VEGA VGA
  955.      = T  132x43                     Tatung VGA
  956.      = T  132x43                     Video7 V-RAM VGA
  957.      = T   80x34  9x10           4       4    B800 Ahead B (Wizard/3270)
  958.      = T  100x60          16             MORSE VGA
  959.      = T  100x60                     Cirrus 510/520 chipset
  960.      = G   80x25  8x16    640x400      16             AT&T 6300, AT&T VDC600
  961.      = G        640x400      64K             Avance Logic AL2101
  962.      = G   80x25    720x348     mono        B800 Genoa SuperEGA BIOS 3.0+
  963.  43h = T   80x60                     VEGA VGA
  964.      = T   80x60                     Tatung VGA
  965.      = T   80x60                     Video7 V-RAM VGA
  966.      = T   80x45  9x8           4       4    B800 Ahead B (Wizard/3270)
  967.      = T  100x75          16             MORSE VGA
  968.      = T   80x29    720x348     mono             Genoa SuperEGA BIOS 3.0+
  969.      = G         640x200 of 640x400 viewport     AT&T 6300 (unsupported)
  970.      = G        640x480      64K             Avance Logic AL2101
  971.  44h =     disable VDC and DEB output             AT&T 6300
  972.      = T  100x60                     VEGA VGA
  973.      = T  100x60                     Tatung VGA
  974.      = T  100x60                     Video7 V-RAM VGA
  975.      = T   80x32    720x352     mono             Genoa SuperEGA BIOS 3.0+
  976.      = G        800x600      64K             Avance Logic AL2101
  977.  45h = T  132x28                     Tatung VGA
  978.      = T  132x28                     Video7 V-RAM VGA
  979.      = T   80x44    720x352     mono             Genoa SuperEGA BIOS 3.0+
  980.  46h = T  132x25  8x14         mono             Genoa 6400
  981.      = T  132x25  9x14         mono             Genoa SuperEGA BIOS 3.0+
  982.      = G  100x40  8x15    800x600       2             AT&T VDC600
  983.  47h = T  132x29  8x12         mono             Genoa 6400
  984.      = T  132x29  9x12         mono             Genoa SuperEGA BIOS 3.0+
  985.      = T  132x28  9x16 1188x448     16/256k    B800 WD90C
  986.      = T  132x28  9x16          16        B800 Diamond Speedstar 24X
  987.      = G  100x37  8x16    800x600      16             AT&T VDC600
  988.  48h = T  132x32  8x12         mono             Genoa 6400
  989.      = T  132x32  9x11         mono             Genoa SuperEGA BIOS 3.0+
  990.      = G   80x50  8x8    640x400       2        B800 AT&T 6300, AT&T VDC600
  991.      = G   80x50  8x8    640x400       2        B800 Olivetti Quaderno
  992.  49h = T  132x44  8x8         mono             Genoa 6400
  993.      = T  132x44  9x8         mono             Genoa SuperEGA BIOS 3.0+
  994.      = G   80x30  8x16    640x480                 Lava Chrome II EGA
  995.  4Dh = T  120x25                     VEGA VGA
  996.  4Eh = T  120x43                     VEGA VGA
  997.      = T   80x60  8x8         16/256k    B800 Oak OTI-067/OTI-077 [8]
  998.  4Fh = T  132x25                     VEGA VGA
  999.      = T  132x60                     some Oak Tech VGA [8]
  1000.  50h = T   80x30  8x16         16/256k    B800 Trident TVGA 8800/8900
  1001.      = T   80x34                     Lava Chrome II EGA
  1002.      = T   80x43         mono             VEGA VGA
  1003.      = T  132x25  9x14         mono             Ahead Systems EGA2001
  1004.      = T  132x25  9x14           4       4    B800 Ahead B
  1005.      = T  132x25  8x14          16       8    B800 OAK Technologies VGA-16
  1006.      = T  132x25  8x14         16/256k    B800 Oak OTI-037/067/077 [8]
  1007.      = T  132x25  8x14 1056x350      16       8    B800 UM587 chipset
  1008.      = T  132x30          16             MORSE VGA
  1009.      = T  132x30                     Cirrus 510/520 chipset
  1010.      = G   80x30  8x16    640x480      16             Paradise EGA-480
  1011.      = G   80x30  8x16    640x480      16             NEL Electronics BIOS
  1012.      = G        640x480     mono???         Taxan 565 EGA
  1013.      = G   40x25  8x8    320x200                 Genoa SuperEGA BIOS 3.0+
  1014.  51h = T   80x30  8x16                     Paradise EGA-480
  1015.      = T   80x30  9x16                     NEL Electronics BIOS
  1016.      = T   80x30                     Lava Chrome II EGA
  1017.      = T   80x43  8x11         16/256k    B800 Trident TVGA 8800/8900
  1018.      = T  132x25         mono             VEGA VGA
  1019.      = T  132x28  9x12           4       4    B800 Ahead B
  1020.      = T  132x43  8x8          16       5    B800 OAK Technologies VGA-16
  1021.      = T  132x43  8x8        16/256k        B800 Oak OTI-037/067/077
  1022.      = T  132x43  8x8  1056x344      16       5    B800 UM587 chipset
  1023.      = T  132x50          16             MORSE VGA
  1024.      = T  132x50                     Cirrus 510/520 chipset
  1025.      = G   80x34  8x14    640x480      16             ATI EGA Wonder
  1026.      = G   80x25  8x8    640x200                 Genoa SuperEGA BIOS 3.0+
  1027.  52h = T   80x60                     Lava Chrome II EGA
  1028.      = T   80x60  8x8         16/256k    B800 Trident TVGA 8800/8900
  1029.      = T  132x43         mono             VEGA VGA
  1030.      = T  132x44  9x8         mono             Ahead Systems EGA2001
  1031.      = T  132x44  9x8           4       2    B800 Ahead B
  1032.      = T  132x60          16             MORSE VGA
  1033.      = T  132x60                     Cirrus 510/520 chipset
  1034.      = G   94x29  8x14    752x410      16             ATI EGA Wonder
  1035.      = G  100x75  8x8    800x600      16       1    A000 OAK Technologies VGA-16
  1036.      = G  100x75  8x8    800x600      16        A000 Oak OTI-037 chipset [8]
  1037.      = G  100x37  8x16    800x600      16        A000 Oak OTI-067/077 chips [8]
  1038.      = G  100x75  8x8    800x600      16        A000 UM587 chipset
  1039.      = G  128x30  8x16 1024x480      16             NEL Electronics BIOS
  1040.  53h = T   80x25  8x16                     NEL Electronics BIOS
  1041.      = T   80x60          16             MORSE VGA
  1042.      = T   80x60                     Cirrus 510/520 chipset
  1043.      = T  132x25  8x14         16/256k    B800 Trident TVGA 8800/8900
  1044.      = T  132x43                     Lava Chrome II EGA
  1045.      = G        640x480     256             Oak VGA
  1046.      = G   80x30  8x16    640x480     256        A000 Oak OTI-067/OTI-077 [8]
  1047.      = G  100x40  8x14    800x560      16             ATI EGA Wonder,ATI VIP
  1048.      = G                         AX PC
  1049.  54h = T  132x25                     Lava Chrome II EGA
  1050.      = T  132x30  8x16         16/256k    B800 Trident TVGA 8800/8900
  1051.      = T  132x43  8x8                     Paradise EGA-480
  1052.      = T  132x43  8x8                     NEL Electronics BIOS
  1053.      = T  132x43  7x9         16/256k    B800 Paradise VGA
  1054.      = T  132x43  8x9         16/256k    B800 Paradise VGA on multisync
  1055.      = T  132x43                     Taxan 565 EGA
  1056.      = T  132x43                     AST VGA Plus
  1057.      = T  132x43                     Hewlett-Packard D1180A
  1058.      = T  132x43  7x9          16             AT&T VDC600
  1059.      = T  132x43  9x9  1188x387     16/256k    B800 WD90C
  1060.      = T  132x43  9x9  1188x387     16/256k    B800 Diamond Speedstar 24X
  1061.      = T  132x43  9x9  1188x387     16/256k    B800 Diamond Stealth 24X
  1062.      = T  132x43  8x8  1056x350     16/256k         Cirrus CL-GD5420/5422/5426
  1063.      = T  132x50  8x8          16        A000 NCR 77C22 [9]
  1064.      = G  100x42  8x14    800x600      16        A000 ATI EGA Wonder, VGA Wonder
  1065.      = G  100x42  8x14    800x600      16        A000 ATI Ultra 8514A, ATI XL
  1066.      = G        800x600     256        A000 Oak VGA
  1067.      = G  100x37  8x16    800x600     256        A000 Oak OTI-067/077 chips [8]
  1068.  55h = T   80x66  8x8         16/256k    A000 ATI VIP
  1069.      = T  132x25  8x14                     Paradise EGA-480
  1070.      = T  132x25  8x14                     NEL Electronics BIOS
  1071.      = T  132x25  7x16         16/256k    B800 Paradise VGA
  1072.      = T  132x25  8x16         16/256k    B800 Paradise VGA on multisync
  1073.      = T  132x25                     Taxan 565 EGA
  1074.      = T  132x25                     AST VGA Plus
  1075.      = T  132x25                     Hewlett-Packard D1180A
  1076.      = T  132x25  7x16          16             AT&T VDC600
  1077.      = T  132x25  8x16          16        A000 NCR 77C22 [9]
  1078.      = T  132x25  9x16 1188x400     16/256k    B800 WD90C
  1079.      = T  132x25  9x16 1188x400     16/256k    B800 Diamond Speedstar 24X
  1080.      = T  132x25  9x16 1188x400     16/256k    B800 Diamond Stealth 24X
  1081.      = T  132x25  8x14 1056x350     16/256k         Cirrus CL-GD5420/5422/5426
  1082.      = T  132x43  8x11         16/256k    B800 Trident TVGA 8800/8900
  1083.      = G   94x29  8x14    752x410                 Lava Chrome II EGA
  1084.      = G  128x48  8x16 1024x768     16/256k    A000 ATI VGA Wonder v4+     [5]
  1085.      = G           1024x768     16/256k         ATI VGA Wonder Plus
  1086.      = G           1024x768     16/256k         ATI Ultra 8514A,ATI XL
  1087.      = G  128x48  8x16 1024x768       4        A000 Oak OTI-067/077 chips [8]
  1088.  56h = T  132x43  8x8           3???       2    B000 NSI Smart EGA+
  1089.      = T  132x43  7x9           4        B000 Paradise VGA
  1090.      = T  132x43  8x9           4        B000 Paradise VGA on multisync
  1091.      = T  132x43         mono             Taxan 565 EGA
  1092.      = T  132x43  7x9           2             AT&T VDC600
  1093.      = T  132x43  9x8                     NEL Electronics BIOS
  1094.      = T  132x50  8x8           4        A000 NCR 77C22 [9]
  1095.      = T  132x60  8x8         16/256k    B800 Trident TVGA 8800/8900
  1096.      = G           1024x768      16        A000 Oak VGA
  1097.      = G  128x48  8x16 1024x768      16        A000 Oak OTI-067/077 chips [8]
  1098.  57h = T  132x25  8x14           3???       4    B000 NSI Smart EGA+
  1099.      = T  132x25  7x16           4        B000 Paradise VGA
  1100.      = T  132x25  8x16           4        B000 Paradise VGA on multisync
  1101.      = T  132x25  9x14                     NEL Electronics BIOS
  1102.      = T  132x25         mono             Taxan 565 EGA
  1103.      = T  132x25  7x16           2             AT&T VDC600
  1104.      = T  132x25  9x14         16/256k    B800 Trident TVGA 8800/8900
  1105.      = T  132x25  8x16           4        A000 NCR 77C22 [9]
  1106.      = G   96x48  8x16    768x1024  16        A000 Oak OTI-067/077 chips [8]
  1107.  58h = T   80x33  8x14          16        B800 ATI EGA Wonder,ATI VIP
  1108.      = T   80x32  9x16          16             Genoa 6400
  1109.      = T   80x43  8x8                     NEL Electronics BIOS
  1110.      = T  132x30  9x16         16/256k    B800 Trident TVGA 8800/8900
  1111.      = G  100x75  8x8    800x600     16/256k    A000 Paradise VGA
  1112.      = G  100x75  8x8    800x600      16             AT&T VDC600
  1113.      = G  100x75  8x8    800x600      16        A000 NCR 77C22 [9]
  1114.      = G  100x75  8x8    800x600      16             Diamond Speedstar 24X
  1115.      = G  100x75  8x8    800x600     16/256k    A000 Paradise VGA, WD90C
  1116.      = G        800x600      16             AST VGA Plus, Compaq VGA
  1117.      = G        800x600      16             Dell VGA
  1118.      = G        800x600      16             Hewlett-Packard D1180A
  1119.      = G        800x600     ???             ELT VGA PLUS 16
  1120.      = G  100x37  8x16    800x600     16/256k    A000 Cirrus CL-GD5420/5422/5426
  1121.      = G  160x64  8x16 1280x1024  16        A000 Oak OTI-077 chipset [8]
  1122.  59h = T   80x43  9x8                     NEL Electronics BIOS
  1123.      = T   80x66  8x8         16/256k    A000 ATI VIP
  1124.      = T  132x43  9x11         16/256k    B800 Trident TVGA 8800/8900
  1125.      = G  100x75  8x8    800x600       2        A000 Paradise VGA
  1126.      = G  100x75  8x8    800x600       2             AT&T VDC600
  1127.      = G        800x600       2             AST VGA Plus, Compaq VGA
  1128.      = G        800x600       2             Dell VGA
  1129.      = G        800x600       2             Hewlett-Packard D1180A
  1130.      = G  100x75  8x8    800x600       2        A000 NCR 77C22 [9]
  1131.      = G  128x48  8x16 1024x768     256        A000 Oak OTI-077 chipset [8]
  1132.  5Ah = T   80x60  8x8                     NEL Electronics BIOS
  1133.      = T  132x60  9x8         16/256k    B800 Trident TVGA 8800/8900
  1134.      = G  128x48  8x16 1024x768       2        A000 NCR 77C22 [9]
  1135.  5Bh = T   80x30  8x16                B800 ATI VGA Wonder (undoc)
  1136.      = G        640x350     256             Genoa 6400
  1137.      = G   80x25  8x16    640x400      32K        A000 Oak OTI-067/077 chips [8]
  1138.      = G        800x600      16             Maxxon, SEFCO TVGA, Imtec
  1139.      = G  100x75  8x8    800x600     16/256k    A000 Trident TVGA 8800, 8900
  1140.      = G        800x600     ???             Vobis MVGA
  1141.      = G  100x37  8x16    800x600                 NEL Electronics BIOS
  1142.      = G  128x48  8x16 1024x768      16        A000 NCR 77C22 [1,9]
  1143.  5Ch = T  100x37  8x16                     NEL Electronics BIOS
  1144.      = G        640x400     256             Logix, ATI Prism Elite
  1145.      = G        640x400     256             Maxxon, SEFCO TVGA, Imtec
  1146.      = G   80x25  8x16    640x400     256/256k    A000 Zymos Poach, Hi Res 512
  1147.      = G   80x25  8x16    640x400     256/256k    A000 Trident TVGA 8800/8900
  1148.      = G   80x30  8x16    640x480     256             Genoa 6400
  1149.      = G   80x30  8x16    640x480      32K        A000 Oak OTI-077 chipset [8]
  1150.      = G  100x75  8x8    800x600     256        A000 NCR 77C22 [9]
  1151.      = G  100x75  8x8    800x600     256/256k    A000 WD90C
  1152.      = G  100x75  8x8    800x600     256/256k    A000 Diamond Speedstar 24X
  1153.      = G  100x37  8x16    800x600     256/256k    A000 Cirrus CL-GD5420/5422/5426
  1154.  5Dh = T  100x75  8x8                     NEL Electronics BIOS
  1155.      = G        640x480     256             Logix, ATI Prism Elite
  1156.      = G        640x480     256             Maxxon, SEFCO TVGA, Imtec
  1157.      = G   80x30  8x16    640x480     256/256k    A000 Zymos Poach, Hi Res 512
  1158.      = G   80x30  8x16    640x480     256/256k    A000 Trident TVGA 8800 (512K)
  1159.      = G  128x48  8x16 1024x768      16        A000 NCR 77C22 [9]
  1160.      = G  128x48  8x16 1024x768      16/256k    A000 WD90C
  1161.      = G  128x48  8x16 1024x768      16             Diamond Speedstar 24X
  1162.      = G  128x48  8x16 1024x768     16/256k    A000 Cirrus CL-GD5420/5422/5426
  1163.  5Eh = G        640x400     256             Paradise VGA,VEGA VGA
  1164.      = G        640x400     256             AST VGA Plus, NCR 77C22
  1165.      = G        640x400     256             Compaq VGA, Dell VGA
  1166.      = G   80x25  8x16    640x400     256             AT&T VDC600
  1167.      = G   80x25  8x16    640x400     256        A000 NCR 77C22 [9]
  1168.      = G   80x25  8x16    640x400     256/256k    A000 WD90C
  1169.      = G   80x25  8x16    640x400     256/256k    A000 Diamond Speedstar 24X
  1170.      = G        800x600      16             Logix, ATI Prism Elite
  1171.      = G  100x37  8x16    800x600      16             NEL Electronics BIOS
  1172.      = G  100x75  8x8    800x600     256             Genoa 6400
  1173.      = G  100x75  8x8    800x600     256/256k    A000 Zymos Poach, Trident 8900
  1174.      = G  100x75  8x8    800x600     256/256k    A000 Hi Res 512
  1175.  5Fh = G        640x480     256             Paradise VGA
  1176.      = G        640x480     256             AST VGA Plus, NCR 77C22
  1177.      = G        640x480     256             Compaq VGA, Dell VGA
  1178.      = G        640x480     256             Hewlett-Packard D1180A
  1179.      = G   80x30  8x16    640x480     256             AT&T VDC600 (512K)
  1180.      = G   80x30  8x16    640x480     256        A000 NCR 77C22 [9]
  1181.      = G   80x30  8x16    640x480     256/256k    A000 WD90C
  1182.      = G   80x30  8x16    640x480     256/256k    A000 Diamond Speedstar 24X
  1183.      = G   80x30  8x16    640x480     256/256k    A000 Cirrus CL-GD5420/5422/5426
  1184.      = G           1024x768      16             Logix, ATI Prism Elite
  1185.      = G           1024x768      16             Maxxon, Imtec
  1186.      = G  128x48  8x16 1024x768      16             Genoa 6400
  1187.      = G  128x48  8x16 1024x768      16/256k    A000 Zymos Poach, Hi Res 512
  1188.      = G  128x48  8x16 1024x768      16/256k    A000 Trident TVGA 88/8900 512K
  1189.  60h = T  132x25  8x14          16/64       8    B800 Quadram Ultra VGA
  1190.      = T  132x25  8x14          16             Genoa 6400
  1191.      = T  132x25  8x14          16             Genoa SuperEGA BIOS 3.0+
  1192.      = T  132x25                     Cirrus 5320 chipset
  1193.      = T  132x25          16             Chips&Technologies chipset
  1194.      = G   80x???    ???x400                 Corona/Cordata BIOS 4.10+
  1195.      = G   80x25  8x16    640x400     256       1    A000 Ahead A, Ahead B
  1196.      = G        752x410                 VEGA VGA
  1197.      = G        752x410      16             Tatung VGA
  1198.      = G        752x410      16             Video7 V-RAM VGA
  1199.      = G  128x48  8x16 1024x768       4/256k    A000 Trident TVGA 8900
  1200.      = G  128x48  8x16 1024x768     256/256k    A000 WD90C
  1201.      = G  128x48  8x16 1024x768     256/256k    A000 Diamond Speedstar 24X
  1202.      = G  128x48  8x16 1024x768     256/256k    A000 Cirrus CL-GD5420/5422/5426
  1203.  61h = T  132x29  8x12          16/64       8    B800 Quadram Ultra VGA
  1204.      = T  132x29  8x8          16             Genoa 6400
  1205.      = T  132x29  8x8          16             Genoa SuperEGA BIOS 3.0+
  1206.      = T  132x50                     Cirrus 5320 chipset
  1207.      = T  132x50          16             Chips&Technologies chipset
  1208.      = G        ???x400                 Corona/Cordata BIOS 4.10+
  1209.      = G   80x25  8x16    640x400     256        A000 ATI VGA Wonder,VGA Wonder+
  1210.      = G   80x25  8x16    640x400     256        A000 ATI Ultra 8514A,ATI XL
  1211.      = G   80x30  8x16    640x480     256       1    A000 Ahead A, Ahead B (512K)
  1212.      = G        720x540                 VEGA VGA
  1213.      = G        720x540      16             Tatung VGA
  1214.      = G        720x540      16             Video7 V-RAM VGA
  1215.      = G   96x64  8x16    768x1024  16/256k    A000 Trident TVGA 88/8900 512K
  1216.      = G  128x48  8x16 1024x768     256        A000 NCR 77C22 [1,9]
  1217.  62h = T  132x32  8x11          16/64       6    B800 Quadram Ultra VGA
  1218.      = T  132x32  8x12          16             Genoa 6400
  1219.      = T  132x32  8x11          16             Genoa SuperEGA BIOS 3.0+
  1220.      = G        640x450      16             Cirrus 510/520 chipset
  1221.      = G   80x30  8x16    640x480     256        A000 ATI VGA Wonder,VGA Wonder+
  1222.      = G   80x30  8x16    640x480     256        A000 ATI Ultra 8514A,ATI XL
  1223.      = G   80x30  8x16    640x480     32K        A000 WD90C
  1224.      = G   80x30  8x16    640x480     32K        A000 Diamond Speedstar 24X
  1225.      = G        800x600                 VEGA VGA
  1226.      = G        800x600      16             Tatung VGA
  1227.      = G        800x600      16             Video7 V-RAM VGA
  1228.      = G  100x75  8x8    800x600     256       1    A000 Ahead A, Ahead B (512K)
  1229.      = G  128x48  8x16 1024x768     256/256k    A000 Trident TVGA 8900, Zymos
  1230.      = G  128x48  8x16 1024x768     256        A000 NCR 77C22 [9]
  1231.  63h = T  132x44  8x8          16/64       5    B800 Quadram Ultra VGA
  1232.      = T  132x44  8x8          16             Genoa 6400
  1233.      = T  132x44  8x8          16             Genoa SuperEGA BIOS 3.0+
  1234.      = G        720x540      16             MORSE VGA
  1235.      = G        720x540      16             Cirrus 510/520 chipset
  1236.      = G  100x42  8x14    800x600     256        A000 ATI VGA Wonder,VGA Wonder+
  1237.      = G  100x42  8x14    800x600     256        A000 ATI Ultra 8514A,ATI XL
  1238.      = G        800x600     32K        A000 WD90C
  1239.      = G        800x600     32K        A000 Diamond Speedstar 24X
  1240.      = G  128x48  7x16 1024x768     256       1    A000 Ahead B (1MB)
  1241.      = G           1024x768       2             Video7 V-RAM VGA
  1242.  64h = T  132x60  8x8          16             Genoa 6400
  1243.      = G    -       -    640x480     64K        A000 Cirrus CL-GD 5422/5426
  1244.      = G        800x600      16             MORSE VGA
  1245.      = G        800x600      16             Cirrus 510/520 chipset
  1246.      = G        800x600     ???             SAMPO-Mira VGA
  1247.      = G           1024x768       4             Video7 V-RAM VGA
  1248.      = G  128x48  8x16 1024x768     256        A000 ATI VGA Wonder Plus,ATI XL
  1249.      = G  160x64  8x16 1280x1024 16/256k    A000 WD90C [1]
  1250.      = G  160x64  8x16 1280x1024 16/256k    A000 Diamond Speedstar 24X [1]
  1251.  65h = G    -       -    800x600     64K        A000 Cirrus CL-GD 5422/5426
  1252.      = G           1024x768      16             Video7 V-RAM VGA
  1253.      = G  128x48  8x16 1024x768      16        A000 ATI VGA Wonder
  1254.  66h = T   80x50  8x8    640x400     16/256k    B800 WD90C
  1255.      = T   80x50  8x8          16        B800 Diamond Speedstar 24X
  1256.      = G        640x400     256             Tatung VGA
  1257.      = G        640x400     256             Video7 V-RAM VGA
  1258.      = G    -       -    640x480     32K        A000 Cirrus CL-GD 5422/5426
  1259.  67h = T   80x43  8x8    640x344     16/256k    B800 WD90C
  1260.      = T   80x43  8x8          16        B800 Diamond Speedstar 24X
  1261.      = G        640x480     256             Video7 V-RAM VGA
  1262.      = G    -       -    800x600     32K        A000 Cirrus CL-GD 5422/5426
  1263.      = G  128x48  8x16 1024x768       4        A000 ATI VGA Wonder
  1264.      = G  160x64  8x16 1280x1024  16        A000 NCR 77C22 [1,9]
  1265.  69h = T  132x50  8x8  1056x400     16/256k    B800 WD90C
  1266.      = T  132x50  8x8          16        B800 Diamond Speedstar 24X
  1267.      = G        720x540     256             Video7 V-RAM VGA
  1268.  6Ah = G        800x600      16        A000 VESA standard interface
  1269.      = G  100x75  8x8    800x600      16             Genoa 6400
  1270.      = G  100x75  8x8    800x600      16             Diamond Speedstar 24X
  1271.      = G        800x600      16        A000 Ahead A
  1272.      = G  100x75  8x8    800x600      16       1    A000 Ahead B (VESA) (see 71h)
  1273.      = G        800x600      16             Zymos Poach, Hi Res 512
  1274.      = G        800x600      16             Epson LT-386SX in CRT Mode
  1275.      = G        800x600      16             Compuadd 316SL in CRT Mode
  1276.      = G  100x37  8x16    800x600     16/256k    A000 Cirrus CL-GD5420/5422/5426
  1277.      = G  100x42  8x14    800x600            A000 ATI VGA Wonder (undoc)
  1278.      = G        800x600      16             Chips&Technologies chipset
  1279.      = G  160x64  8x16 1280x1024 256        A000 NCR 77C22 [1,9]
  1280.  6Bh = T  100x37  8x16          16             Genoa 6400
  1281.      = T  100x37  8x16                     NEL Electronics BIOS
  1282.  6Ch = G   80x30  8x16    640x480      16M        A000 Trident 8900CL/BIOS C04
  1283.      = G  100x75  8x8    800x600     256             Genoa 6400
  1284.      = G  160x60  8x16 1280x960     16/256k    A000 WD90C [1]
  1285.      = G  160x60  8x16 1280x960     16/256k    A000 Diamond Speedstar 24X [1]
  1286.      = G  160x64  8x16 1280x1024 16/256k    A000 Cirrus CL-GD 5422/5426 [1]
  1287.  6Dh = G  160x64  8x16 1280x1024 256/256k    A000 Cirrus CL-GD 5422/5426 [1]
  1288.  6Eh = G   40x25  8x8    320x200      64K        A000 Cirrus CL-GD 5422/5426
  1289.  6Fh = G   40x25  8x8    320x200      16M        A000 Cirrus CL-GD 5422/5426
  1290.  70h =     extended mode set (see AX=0070h)         Everex Micro Enhancer EGA
  1291.      = T   40x25  8x8          16       8    B800 Quadram (CGA double scan)
  1292.      = T   40x25  8x8    (CGA dblscan)             Genoa SuperEGA BIOS 3.0+
  1293.      = G        360x480     256             Cirrus 510/520/5320 chips
  1294.      = G   90x28  8x14    720x392      16       1    A000 Ahead B
  1295.      = G        800x600      16             C&T chipset, Cardinal
  1296.      = G           1024x480     256             Trident 8900C BIOS C3.0
  1297.  71h = T   80x25  8x8          16       8    B800 Quadram (CGA double scan)
  1298.      = T   80x25  8x8    (CGA dblscan)             Genoa SuperEGA BIOS 3.0+
  1299.      = G        528x400     256             Cirrus 510/520 chipset
  1300.      = G   80x30  8x16    640x480      16M        A000 Cirrus CL-GD 5422/5426
  1301.      = G  100x35  8x16    800x600     16of64        A000 NSI Smart EGA+
  1302.      = G  100x75  8x8    800x600      16       1    A000 Ahead B (same as 6Ah)
  1303.      = G        960x720      16             C&T chipset, Cardinal
  1304.      = G           1024x480     256             Trident 8900C BIOS C3.0
  1305.  72h = T   80x60  8x8          16        B800 Quadram Ultra VGA
  1306.      = T   80x60  8x8          16        B800 Genoa 6400
  1307.      = T   80x60  8x8          16        B800 Genoa SuperEGA BIOS 3.0+
  1308.      = G        528x480     256             Cirrus 510/520 chipset
  1309.      = G        640x480 32768        A000 ATI
  1310.      = G        640x480     16M        A000 WD90C
  1311.      = G        640x480     16M        A000 Diamond Speedstar 24X
  1312.      = G           1024x768      16             C&T chipset, Cardinal
  1313.  73h = G   80x60  8x8    640x480      16        A000 Quadram Ultra VGA
  1314.      = G   80x60  8x8    640x480      16             Genoa 6400
  1315.      = G   80x60  8x8    640x480      16             Genoa SuperEGA BIOS 3.0+
  1316.  74h = T   80x66  8x8          16        B800 Quadram Ultra VGA
  1317.      = T   80x66  8x8          16        B800 Genoa 6400
  1318.      = T   80x66  8x8          16        B800 Genoa SuperEGA BIOS 3.0+
  1319.      = G        640x400       2        B800 Toshiba 3100 AT&T mode
  1320.      = G   80x30  8x16    640x480      32K        A000 Trident 8900C/BIOS C03
  1321.      = G  128x48  8x16 1024x768      16       1    A000 Ahead A, Ahead B (512K)
  1322.      = G     -       -   1024x768      64K        A000 Cirrus CL-GD 5422/5426 [1]
  1323.  75h = G   80x30  8x16    640x480      64K        A000 Trident 8900C/BIOS C03
  1324.      = G   80x66    640x528      16???        A000 Quadram Ultra VGA
  1325.      = G   80x66    640x528      16             Genoa SuperEGA BIOS 3.0+
  1326.      = G  128x48  8x16 1024x768       4       1    A000 Ahead B
  1327.  76h = T   94x29  8x14          16        B800 Quadram Ultra VGA
  1328.      = T   94x29  8x14                     Genoa SuperEGA BIOS 3.0+
  1329.      = G  100x75  8x8    800x600      32K        A000 Trident 8900C/BIOS C03
  1330.      = G  128x48  8x16 1024x768       2       1    A000 Ahead B
  1331.  77h = G   94x29    752x410      16???        A000 Quadram Ultra VGA
  1332.      = G   94x29    752x410      16             Genoa SuperEGA BIOS 3.0+
  1333.      = G  100x75  8x8    800x600      64K        A000 Trident 8900C/BIOS C03
  1334.  78h = T  100x37  8x16          16             Genoa 6400
  1335.      = T  100x75  8x8          16        B800 Quadram Ultra VGA
  1336.      = T  100x75  8x8                     Genoa SuperEGA BIOS 3.0+
  1337.      = G        640x400     256             STB VGA/EM-16 Plus
  1338.      = G        640x400     256             Cardinal, C&T chipset
  1339.      = G        640x400     256             Cirrus 5320 chipset
  1340.  79h = G        640x480     256             Cardinal, C&T chipset
  1341.      = G  100x75    800x600      16???        A000 Quadram Ultra VGA
  1342.      = G  100x75  8x8    800x600      16             Genoa SuperEGA BIOS 3.0+
  1343.      = G  100x75  8x8    800x600      16             Genoa 6400
  1344.  7Ah = T  114x60  8x8          16        B800 Quadram Ultra VGA
  1345.      = T  114x60  8x8                     Genoa SuperEGA BIOS 3.0+
  1346.      = G        720x540     256             C&T chipset, Cardinal
  1347.  7Bh = G        800x600     256             C&T chipset, Cardinal
  1348.      = G  114x60    912x480      16???        A000 Quadram Ultra VGA
  1349.      = G        912x480      16             Genoa SuperEGA BIOS 3.0+
  1350.  7Ch = G        512x512      16             Genoa
  1351.      = G        800x600     256             C&T 82C453 chipset
  1352.  7Dh = G   64x32  8x16    512x512     256             Genoa
  1353.  7Eh =     special mode set (see AX=007Eh)         Paradise VGA, AT&T VDC600
  1354.      = G   80x25  8x16    640x400     256             Genoa 6400
  1355.      = G           1024x768     256             C&T 82C453 chipset
  1356.  7Fh =     special function set (see AX=007Fh)         Paradise VGA, AT&T VDC600
  1357.      = G  128x48  8x16 1024x768       4             Genoa 6400
  1358.  82h = T   80x25         B&W             AT&T VDC overlay mode [6]
  1359.  83h = T   80x25                     AT&T VDC overlay mode [6]
  1360.  86h = G        640x200     B&W             AT&T VDC overlay mode [6]
  1361.  88h = G   90x43  8x8    720x352     mono        B000 Hercules + MSHERC.COM
  1362.  C0h = G        640x400     2/prog pallet         AT&T VDC overlay mode [6]
  1363.      = G        640x400     2/prog pallet         Olivetti Quaderno overlay
  1364.  C4h =     disable output                     AT&T VDC overlay mode [6]
  1365.  C8h = G   80x50  8x8    640x400       2        B800 Olivetti Quaderno overlay
  1366.  D0h = G        640x400       2        B800 DEC VAXmate AT&T mode
  1367. Notes:
  1368. [1] interlaced only
  1369. [2] for ATI EGA Wonder, mode 08h is only valid if SMS.COM is loaded resident.
  1370.       SMS maps mode 08h to mode 27h if the byte at location 0040:0063 is 0B4h,
  1371.       otherwise to mode 23h, thus selecting the appropriate (monochrome or
  1372.       color) 132x25 character mode.
  1373.     for ATI VGA Wonder, mode 08h is the same, and only valid if VCONFIG loaded
  1374.       resident
  1375. [3] early XGA boards support 132-column text but do not have this BIOS mode
  1376. [4] DESQview intercepts calls to change into these two modes (21h is page 0,
  1377.       22h is page 1) even if there is no Hercules graphics board installed
  1378. [5] ATI BIOS v4-1.00 has a text-scrolling bug in this mode
  1379. [6] for AT&T VDC overlay modes, BL contains the DEB mode, which may be 06h,
  1380.       40h, or 44h
  1381. [7] BIOS text support is broken in this undocumented mode; scrolling moves only
  1382.       about 1/3 of the screen (and does even that portion incorrectly), while
  1383.       screen clears only clear about 3/4.
  1384. [8] The Oak OTI-037/067/077 modes are present in the Oak VGA BIOS, which OEMs
  1385.       may choose to use only partially or not at all; thus, not all Oak boards
  1386.       support all "Oak" modes listed here
  1387. [9] this card uses the full 128K A000h-BFFFh range for the video buffer,
  1388.       precluding the use of a monochrome adapter in the same system
  1389. [10] mode 17h supported by Tseng ET4000 BIOS 8.01X dated 09/14/90, but not
  1390.       v8.01X dated 02/28/92; mode 21h supported by 02/28/92 version but not
  1391.       09/14/90 version
  1392. [11] HERKULES simulates a 90x45 text mode in Hercules graphics mode; the
  1393.       installation check for HERKULES.COM is the signature "Herkules" two bytes
  1394.       beyond the INT 10 handler
  1395. [12] The Realtek RTVGA BIOS v3.C10 crashes when attempting to switch into modes
  1396.     21h or 27h; this version of the BIOS also sets the BIOS data area
  1397.     incorrectly for extended text modes, resulting in scrolling after only
  1398.     24 lines (the VMODE.EXE    utility does set the data area correctly)
  1399. Index:    video modes
  1400. Index:    installation check|HERKULES
  1401. --------V-100070-----------------------------
  1402. INT 10 - VIDEO - Everex Micro Enhancer EGA/Viewpoint VGA - EXTENDED MODE SET
  1403.     AX = 0070h
  1404.     BL = mode (see below)
  1405. Desc:    specify a proprietary display mode on the Everex Micro Enhancer or
  1406.       Viewpoint video adapters
  1407. SeeAlso: AH=00h,AX=6F05h,AX=7000h/BX=0004h,AH=FFh"GO32"
  1408.  
  1409. Values for video mode:
  1410.       text/ text pixel     pixel    colors    disp    scrn  monitor    adapter
  1411.       grph resol  box    resoltn        page    addr
  1412.  00h = G        640x480      16             multsync    EGA,VGA
  1413.  01h = G        752x410      16             multsync    EGA,VGA
  1414.  02h = G        800x600      16             multsync    EGA,VGA
  1415.  03h = T   80x34                     multsync    EGA,VGA
  1416.  04h = T   80x60                     multsync    EGA,VGA
  1417.  05h = T   94x29                     multsync    EGA only
  1418.  06h = T   94x51                     multsync    EGA only
  1419.  07h = T  100x43  8x14          16                VGA only
  1420.  08h = T  100x75  8x8          16                VGA only
  1421.  09h = T   80x44                     EGA    EGA only
  1422.  0Ah = T  132x25                     EGA    EGA,VGA
  1423.  0Bh = T  132x44                     EGA    EGA,VGA
  1424.  0Ch = T  132x25                     CGA    EGA only
  1425.  0Dh = T   80x44                     mono    EGA only
  1426.  0Eh = T  132x25                     mono
  1427.  0Fh = T  132x44                     mono
  1428.  10h =     reserved
  1429.  11h = G           1280x350       4                EGA only
  1430.  12h = G           1280x600       4                EGA only
  1431.  13h = G        640x350     256                EGA,EV673
  1432.  14h = G        640x400     256
  1433.  15h = G        512x480     256
  1434.  16h = T   80x30  8x16         256                VGA only
  1435.  18h = T  100x27  8x16          16                VGA only
  1436.  20h = G           1024x768      16                Everex 629,678
  1437.                                 Everex EV-673
  1438.  21h = T  160x64  8x16 1280x1024  16                1MB VGA only
  1439.  30h = G        640x480     256                Everex 629,678
  1440.                                 Everex EV-673
  1441.  31h = G        800x600     256                Everex 629,678
  1442.                                 Everex EV-673
  1443.  32h = G  128x48  8x16 1024x768     256                1MB VGA only
  1444.  40h = T  132x30  8x16          16                VGA only
  1445.  50h = T  132x32  8x16         mono                VGA only
  1446.  62h = G   40x25  8x8    320x200     32K                Vwpt TC (EV629)
  1447.  70h = G   64x30  8x16    512x480     32K                Viewpoint TC
  1448.  71h = G   80x30  8x16    640x480     32K                Viewpoint TC
  1449.  76h = G   64x30  8x16    512x480     16M                Viewpoint TC
  1450.  77h = G   80x30  8x16    640x480     16M                Viewpoint TC
  1451. Index:    video modes
  1452. --------V-10007E-----------------------------
  1453. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET SPECIAL MODE
  1454.     AX = 007Eh
  1455.     BX = horizontal dimension of the mode desired
  1456.     CX = vertical dimension of the mode desired
  1457.          (both BX/CX in pixels for graphics modes, rows for alpha modes)
  1458.     DX = number of colors of the mode desired (0000h for monochrome modes)
  1459. Return: BH = 7Eh if successful (Paradise VGA)
  1460.     AL = 7Eh if successful (AT&T VDC600)
  1461. Desc:    specify a display mode by resolution rather than mode number
  1462. SeeAlso: AH=00h,AX=0070h,AX=007Fh,AX=6F05h,AH=FFh"GO32"
  1463. Index:    video modes
  1464. --------V-10007F-----------------------------
  1465. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - EXTENDED FUNCTIONS
  1466.     AX = 007Fh
  1467.     BH = function
  1468.         00h     set VGA operation
  1469.         01h     set non-VGA operation
  1470.         color modes (0,1,2,3,4,5,6) will set non-VGA CGA operation
  1471.         monochrome mode 7 will set non-VGA MDA/Hercules operation
  1472.         02h     query mode status
  1473.         Return: BL = 00h if operating in VGA mode, 01h if non-VGA mode
  1474.             CH = total video RAM size in 64k byte units
  1475.             CL = video RAM used by the current mode
  1476.         03h     lock current mode
  1477.         allows current mode (VGA or non-VGA) to survive re-boot
  1478.         04h     enter CGA mode (AT&T VDC600 only)
  1479.         05h     enter MDA mode (AT&T VDC600 only)
  1480.         0Ah,0Bh,0Ch,0Dh,0Eh,0Fh  WRITE PARADISE REGISTERS 0,1,2,3,4,5
  1481.         (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
  1482.         BL = value to set in the paradise register
  1483.         1Ah,1Bh,1Ch,1Dh,1Eh,1Fh READ PARADISE REGISTERS 0,1,2,3,4,5
  1484.         (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
  1485.         Return: BL = value of the paradise register
  1486.             BH = 7Fh if successful
  1487. Return: AL = 7Fh if successful (AT&T VDC600)
  1488. Desc:    set emulation mode or access proprietary extended data registers
  1489. SeeAlso: AX=007Eh,AH=FF"Oak"
  1490. --------V-1001-------------------------------
  1491. INT 10 - VIDEO - SET TEXT-MODE CURSOR SHAPE
  1492.     AH = 01h
  1493.     CH = bit 7    should be zero
  1494.          bits 6,5 cursor blink
  1495.              (00=normal, 01=invisible, 10=erratic, 11=slow)
  1496.              (00=normal, other=invisible on EGA/VGA)
  1497.          bits 4-0 top scan line containing cursor
  1498.     CL = bottom scan line containing cursor (bits 0-4)
  1499. Desc:    specify the starting and ending scan lines to be occupied by the
  1500.       hardware cursor in text modes
  1501. Notes:    buggy on EGA systems--BIOS remaps cursor shape in 43 line modes, but
  1502.       returns unmapped cursor shape
  1503.     UltraVision scales size to the current font height by assuming 14-line
  1504.       monochrome and 8-line color fonts; this call is not valid if cursor
  1505.       emulation has been disabled
  1506.     applications which wish to change the cursor by programming the
  1507.       hardware directly on EGA or above should call INT 10/AX=1130h or
  1508.       read 0040h:0085h first to determine the current font height
  1509. BUG:    AMI 386 BIOS and AST Premier 386 BIOS will lock up the system if AL
  1510.       is not equal to the current video mode
  1511. SeeAlso: AH=03h,AX=CD05h,AH=12h/BL=34h
  1512. --------V-1002-------------------------------
  1513. INT 10 - VIDEO - SET CURSOR POSITION
  1514.     AH = 02h
  1515.     BH = page number
  1516.         0-3 in modes 2&3
  1517.         0-7 in modes 0&1
  1518.         0 in graphics modes
  1519.     DH = row (00h is top)
  1520.     DL = column (00h is left)
  1521. SeeAlso: AH=03h,AH=05h,INT 60/DI=030Bh
  1522. --------V-1003-------------------------------
  1523. INT 10 - VIDEO - GET CURSOR POSITION AND SIZE
  1524.     AH = 03h
  1525.     BH = page number
  1526.         0-3 in modes 2&3
  1527.         0-7 in modes 0&1
  1528.         0 in graphics modes
  1529. Return: AX = 0000h (Phoenix BIOS)
  1530.     CH = start scan line
  1531.     CL = end scan line
  1532.     DH = row (00h is top)
  1533.     DL = column (00h is left)
  1534. Notes:    a separate cursor is maintained for each of up to 8 display pages
  1535.     many ROM BIOSes incorrectly return the default size for a color display
  1536.       (start 06h, end 07h) when a monochrome display is attached
  1537. SeeAlso: AH=01h,AH=02h,AH=12h/BL=34h
  1538. --------V-1004-------------------------------
  1539. INT 10 - VIDEO - READ LIGHT PEN POSITION (except VGA)
  1540.     AH = 04h
  1541. Return: AH = light pen trigger flag
  1542.         00h not down/triggered
  1543.         01h down/triggered
  1544.         DH,DL = row,column of character light pen is on
  1545.         CH = pixel row (graphics modes 04h-06h)
  1546.         CX = pixel row (graphics modes with >200 rows)
  1547.         BX = pixel column
  1548. Desc:    determine the current position and status of the light pen (if
  1549.       present)
  1550. Notes:    on a CGA, returned column numbers are always multiples of 2 (320-
  1551.       column modes) or 4 (640-column modes)
  1552.     returned row numbers are only accurate to two lines
  1553. --------V-1005-------------------------------
  1554. INT 10 - VIDEO -  SELECT ACTIVE DISPLAY PAGE
  1555.     AH = 05h
  1556.     AL = new page number (00h to number of pages - 1) (see AH=00h)
  1557. Desc:    specify which of possibly multiple display pages will be visible
  1558. Note:    to determine whether the requested page actually exists, use AH=0Fh
  1559.       to query the current page after making this call
  1560. SeeAlso: AH=0Fh,AH=43h,AH=45h
  1561. --------V-1005-------------------------------
  1562. INT 10 - VIDEO - PCjr - MANIPULATE CRT/CPU PAGE REGISTERS
  1563.     AH = 05h
  1564.     AL = subfunction
  1565.         80h read CRT and CPU page registers
  1566.         Return: BH = CRT page register
  1567.             BL = CPU page register
  1568.         81h set CPU page register
  1569.         BL = CPU page
  1570.         82h set CRT page register
  1571.         BH = CRT page
  1572.         83h set both CPU and CRT page registers
  1573.         BL = CPU page
  1574.         BH = CRT page
  1575. Notes:    the CPU page determines which 16K block of the first 128K of physical
  1576.       memory will be mapped at B800h by the hardware
  1577.     the CRT page determines the start address of the memory used by the
  1578.       video controller
  1579. --------V-1005-------------------------------
  1580. INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - GRAPHICS BITMAP BUFFER
  1581.     AH = 05h
  1582.     AL = function
  1583.         00h set address of graphics bitmap buffer (video modes 60h,61h)
  1584.         BX = segment of buffer
  1585.         0Fh get address of graphics bitmap buffer (video modes 60h,61h)
  1586.         Return: DX = segment of graphics bitmap buffer
  1587. --------V-1006-------------------------------
  1588. INT 10 - VIDEO - SCROLL UP WINDOW
  1589.     AH = 06h
  1590.     AL = number of lines by which to scroll up (00h = clear entire window)
  1591.     BH = attribute used to write blank lines at bottom of window
  1592.     CH,CL = row,column of window's upper left corner
  1593.     DH,DL = row,column of window's lower right corner
  1594. Note:    affects only the currently active page (see AH=05h)
  1595. Warning: some implementations have a bug which destroys BP
  1596. SeeAlso: AH=07h,AH=72h,AH=73h,AX=7F07h,INT 50/AX=0014h
  1597. --------V-1007-------------------------------
  1598. INT 10 - VIDEO - SCROLL DOWN WINDOW
  1599.     AH = 07h
  1600.     AL = number of lines by which to scroll down (00h=clear entire window)
  1601.     BH = attribute used to write blank lines at top of window
  1602.     CH,CL = row,column of window's upper left corner
  1603.     DH,DL = row,column of window's lower right corner
  1604. Note:    affects only the currently active page (see AH=05h)
  1605. Warning: some implementations have a bug which destroys BP
  1606. SeeAlso: AH=06h,AH=72h,AH=73h,INT 50/AX=0014h
  1607. --------V-1008-------------------------------
  1608. INT 10 - VIDEO - READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION
  1609.     AH = 08h
  1610.     BH = page number (00h to number of pages - 1) (see AH=00h)
  1611. Return: AH = charater's attribute (see below)
  1612.     AL = character
  1613. Notes:    for monochrome displays, a foreground of 1 with background 0 is
  1614.       underlined
  1615.     the blink bit may be reprogrammed to enable intense background colors
  1616.       using AX=1003h or by programming the CRT controller
  1617.     the foreground intensity bit (3) can be programmed to switch between
  1618.       character sets A and B on EGA and VGA cards, thus enabling 512
  1619.       simultaneous characters on screen.  In this case the bit's usual
  1620.       function (intensity) is regularly turned off.
  1621. SeeAlso: AH=09h,AX=1003h,AX=5001h
  1622.  
  1623. Bitfields for character's attribute:
  1624.  bit 7    blink
  1625.  bits 6-4  background color
  1626.         000 black    100 red
  1627.         001 blue    101 magenta
  1628.         010 green    110 brown
  1629.         011 cyan    111 white
  1630.  bits 3-0  foreground color
  1631.         0000 black     1000 dark gray
  1632.         0001 blue     1001 light blue
  1633.         0010 green     1010 light green
  1634.         0011 cyan     1011 light cyan
  1635.         0100 red     1100 light red
  1636.         0101 magenta     1101 light magenta
  1637.         0110 brown     1110 yellow
  1638.         0111 light gray     1111 white
  1639. --------V-1009-------------------------------
  1640. INT 10 - VIDEO - WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION
  1641.     AH = 09h
  1642.     AL = character to display
  1643.     BH = page number (00h to number of pages - 1) (see AH=00h)
  1644.     BL = attribute (text mode) or color (graphics mode)
  1645.          if bit 7 set in graphics mode, character is xor'ed onto screen
  1646.     CX = number of times to write character
  1647. Notes:    all characters are displayed, including CR, LF, and BS
  1648.     replication count in CX may produce an unpredictable result in graphics
  1649.       modes if it is greater than the number of positions remaining in the
  1650.       current row
  1651. SeeAlso: AH=08h,AH=0Ah,AH=4Bh"GRAFIX",INT 17/AH=60h,INT 1F,INT 43,INT 44
  1652. --------V-100A-------------------------------
  1653. INT 10 - VIDEO - WRITE CHARACTER ONLY AT CURSOR POSITION
  1654.     AH = 0Ah
  1655.     AL = character to display
  1656.     BH = page number (00h to number of pages - 1) (see AH=00h)
  1657.     BL = attribute (PCjr only) or color (graphics mode)
  1658.          if bit 7 set in graphics mode, character is xor'ed onto screen
  1659.     CX = number of times to write character
  1660. Notes:    all characters are displayed, including CR, LF, and BS
  1661.     replication count in CX may produce an unpredictable result in graphics
  1662.       modes if it is greater than the number of positions remaining in the
  1663.       current row
  1664. SeeAlso: AH=08h,AH=09h,AH=4Bh,INT 17/AH=60h,INT 1F,INT 43,INT 44
  1665. --------V-100B--BH00-------------------------
  1666. INT 10 - VIDEO - SET BACKGROUND/BORDER COLOR
  1667.     AH = 0Bh
  1668.     BH = 00h
  1669.     BL = background/border color (border only in text modes)
  1670. SeeAlso: AH=0Bh/BH=01h
  1671. --------V-100B--BH01-------------------------
  1672. INT 10 - VIDEO - SET PALETTE
  1673.     AH = 0BH
  1674.     BH = 01h
  1675.     BL = palette ID
  1676.         00h background, green, red, and brown/yellow
  1677.         01h background, cyan, magenta, and white
  1678. SeeAlso: AH=0Bh/BH=00h
  1679. --------V-100C-------------------------------
  1680. INT 10 - VIDEO - WRITE GRAPHICS PIXEL
  1681.     AH = 0Ch
  1682.     BH = page number
  1683.     AL = pixel color (if bit 7 set, value is xor'ed onto screen)
  1684.     CX = column
  1685.     DX = row
  1686. Desc:    set a single pixel on the display in graphics modes
  1687. Notes:    valid only in graphics modes
  1688.     BH is ignored if the current video mode supports only one page
  1689. SeeAlso: AH=0Dh,AH=46h
  1690. --------V-100D-------------------------------
  1691. INT 10 - VIDEO - READ GRAPHICS PIXEL
  1692.     AH = 0Dh
  1693.     BH = page number
  1694.     CX = column
  1695.     DX = row
  1696. Return: AL = pixel color
  1697. Desc:    determine the current color of the specified pixel in grahics modes
  1698. Notes:    valid only in graphics modes
  1699.     BH is ignored if the current video mode supports only one page
  1700. SeeAlso: AH=0Ch,AH=47h
  1701. --------V-100E-------------------------------
  1702. INT 10 - VIDEO - TELETYPE OUTPUT
  1703.     AH = 0Eh
  1704.     AL = character to write
  1705.     BH = page number
  1706.     BL = foreground color (graphics modes only)
  1707. Desc:    display a character on the screen, advancing the cursor and scrolling
  1708.       the screen as necessary
  1709. Notes:    characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted
  1710.       and do the expected things
  1711.     IBM PC ROMs dated 4/24/81 and 10/19/81 require that BH be the same as
  1712.       the current active page
  1713. SeeAlso: AH=02h,AH=0Ah
  1714. --------V-100F-------------------------------
  1715. INT 10 - VIDEO - GET CURRENT VIDEO MODE
  1716.     AH = 0Fh
  1717. Return: AH = number of character columns
  1718.     AL = display mode (see AH=00h)
  1719.     BH = active page (see AH=05h)
  1720. Notes:    if mode was set with bit 7 set ("no blanking"), the returned mode will
  1721.       also have bit 7 set
  1722.     EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
  1723.       (monochrome) in all extended-row text modes
  1724. SeeAlso: AH=00h,AH=05h,AX=10F2h/BL=00h,AX=1130h,AX=CD04h
  1725. --------V-100F56BX4756-----------------------
  1726. INT 10 - VUIMAGE DISPLAY DRIVER (v2.20 and below)
  1727.     AX = 0F56h
  1728.     BX = 4756h
  1729.     CX = 4944h
  1730.     DL = function
  1731.         01h installation check
  1732.         Return: AX = 5649h
  1733.             BX = 4443h
  1734.             CX = 5647h
  1735.             DH = 01h
  1736.         02h get first video mode's parameters
  1737.         Return: AX = BIOS mode number
  1738.             BX = width in pixels
  1739.             CX = height in pixels
  1740.             DX = number of colors
  1741.         03h get next video mode's parameters
  1742.         Return: as for DL=02h
  1743.         04h display line???
  1744.         ES:DI -> record (see below)
  1745.         ???
  1746.         Return: ???
  1747. Program: VUIMAGE is a shareware GIF/TIFF image viewer by Offe Enterprises
  1748. Note:    the use of TSR display drivers was discontinued after v2.20
  1749. Index:    installation check;VUIMAGE display driver
  1750.  
  1751. Format of record for DL=04h:
  1752. Offset    Size    Description
  1753.  00h    WORD    row number
  1754.  02h    WORD    starting column???
  1755.  04h    WORD    ending column???
  1756.     ???
  1757. --------V-100F--SIF123-----------------------
  1758. INT 10 - FRIEZE v7.41+ - INSTALLATION CHECK
  1759.     AH = 0Fh
  1760.     SI = F123h
  1761.     DI = 321Fh
  1762. Return: AH = number of character columns
  1763.     AL = display mode (see AH=00h)
  1764.     BH = active page (see AH=05h)
  1765.     SI = DI = F345h if installed
  1766. Notes:    if mode was set with bit 7 set ("no blanking"), the returned mode will
  1767.       also have bit 7 set
  1768.     EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
  1769.       (monochrome) in all extended-row text modes
  1770. SeeAlso: AH=0Fh"VIDEO",AH=4Bh"FRIEZE"
  1771. --------V-1010-------------------------------
  1772. INT 10 - BIOS Window Extension v1.1 - SET WINDOW COORDINATES
  1773.     AH = 10h
  1774.     CH,CL = row,column of upper left corner of window
  1775.     DH,DL = row,column of lower right corner of window
  1776. Return: AL = status
  1777.         00h successful
  1778.         01h failed
  1779.     AH destroyed
  1780. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  1781. Note:    when a window has been set, all output via AH=0Eh is restricted to
  1782.       the specified window
  1783. SeeAlso: AH=11h"Window",AH=12h"Window"
  1784. --------V-1010-------------------------------
  1785. INT 10 - VIDEO - Eagle PC2 BIOS Rev. C - SET SCROLL SPEED
  1786.     AH = 10h
  1787.     AL = speed
  1788.         00h fast
  1789.         01h slow (scrolling only moves characters during vertical retrace)
  1790. Return: AH = previous speed
  1791. --------V-101000-----------------------------
  1792. INT 10 - VIDEO - SET SINGLE PALETTE REGISTER (PCjr,EGA,MCGA,VGA)
  1793.     AX = 1000h
  1794.     BL = palette register number (00h-0Fh)
  1795.        = attribute register number (undocumented)
  1796.          10h attribute mode control register (should let BIOS control this)
  1797.          11h overscan color register (see also AX=1001h)
  1798.          12h color plane enable register (bits 3-0 enable corresponding
  1799.         text attribute bit)
  1800.          13h horizontal PEL panning register
  1801.          14h color select register
  1802.     BH = color or attribute register value
  1803. Notes:    on MCGA, only BX = 0712h is supported
  1804.     under UltraVision, the palette locking status (see AX=CD01h)
  1805.       determines the outcome
  1806. SeeAlso: AX=1002h,AX=1007h,AX=CD01h
  1807. --------V-101001-----------------------------
  1808. INT 10 - VIDEO - SET BORDER (OVERSCAN) COLOR (PCjr,EGA,VGA)
  1809.     AX = 1001h
  1810.     BH = border color (00h-3Fh)
  1811. BUG:    the original IBM VGA BIOS incorrectly updates the parameter save area
  1812.       and places the border color at offset 11h of the palette table
  1813.       rather than offset 10h
  1814. Note:    under UltraVision, the palette locking status (see AX=CD01h)
  1815.       determines the outcome
  1816. SeeAlso: AX=1002h,AX=1008h,AX=CD01h
  1817. --------V-101002-----------------------------
  1818. INT 10 - VIDEO - SET ALL PALETTE REGISTERS (PCjr,EGA,VGA)
  1819.     AX = 1002h
  1820.     ES:DX -> palette register list
  1821. Note:    under UltraVision, the palette locking status (see AX=CD01h)
  1822.       determines the outcome
  1823. SeeAlso: AX=1000h,AX=1001h,AX=1009h,AX=CD01h
  1824.  
  1825. Format of palette register list:
  1826. Offset    Size    Description
  1827.  00h 16 BYTEs    colors for palette registers 00h through 0Fh
  1828.  10h    BYTE    border color
  1829. --------V-101003-----------------------------
  1830. INT 10 - VIDEO - TOGGLE INTENSITY/BLINKING BIT (Jr, PS, TANDY 1000, EGA, VGA)
  1831.     AX = 1003h
  1832.     BL = new state
  1833.         00h background intensity enabled
  1834.         01h blink enabled
  1835.     BH = 00h to avoid problems on some adapters
  1836. Notes:    although there is no function to get the current status on adapters
  1837.       prior to the VGA, bit 5 of 0040h:0065h indicates the state; on the
  1838.       VGA, use AH=1Bh and check offset 2Dh of the returned data
  1839.     when configured for a monochrome display, the Boca Research Multi-EGA
  1840.       with ROM v M1.1 Type D has its screen disrupted if BH is not clear
  1841. SeeAlso: AH=08h,AH=1Bh
  1842. --------V-101007-----------------------------
  1843. INT 10 - VIDEO - GET INDIVIDUAL PALETTE REGISTER (VGA,UltraVision v2+)
  1844.     AX = 1007h
  1845.     BL = palette or attribute (undoc) register number (see AX=1000h)
  1846. Return: BH = palette or attribute register value
  1847. Note:    UltraVision v2+ supports this function even on color EGA systems in
  1848.       video modes 00h-03h, 10h, and 12h; direct programming of the palette
  1849.       registers will cause incorrect results because the EGA registers are
  1850.       write-only.  To guard against older versions or unsupported video
  1851.       modes, programs which expect to use this function on EGA systems
  1852.       should set BH to FFh on entry.
  1853. SeeAlso: AX=1000h,AX=1009h
  1854. --------V-101008-----------------------------
  1855. INT 10 - VIDEO - READ OVERSCAN (BORDER COLOR) REGISTER (VGA,UltraVision v2+)
  1856.     AX = 1008h
  1857. Return: BH = border color (00h-3Fh)
  1858. Note:    (see AX=1007h)
  1859. SeeAlso: AX=1001h
  1860. --------V-101009-----------------------------
  1861. INT 10 - VIDEO - READ ALL PALETTE REGISTERS AND OVERSCAN REGISTER (VGA)
  1862.     AX = 1009h
  1863.     ES:DX -> 17-byte buffer (see AX=1002h)
  1864. Note:    UltraVision v2+ supports this function even on color EGA systems in
  1865.       video modes 00h-03h, 10h, and 12h; direct programming of the palette
  1866.       registers will cause incorrect results because the EGA registers are
  1867.       write-only.  To guard against older versions or unsupported video
  1868.       modes, programs which expect to use this function on EGA systems
  1869.       should set the ES:DX buffer to FFh before calling.
  1870. SeeAlso: AX=1002h,AX=1007h,AX=CD02h
  1871. --------V-101010-----------------------------
  1872. INT 10 - VIDEO - SET INDIVIDUAL DAC REGISTER (VGA/MCGA)
  1873.     AX = 1010h
  1874.     BX = register number
  1875.     CH = new value for green (0-63)
  1876.     CL = new value for blue (0-63)
  1877.     DH = new value for red (0-63)
  1878. SeeAlso: AX=1012h,AX=1015h
  1879. --------V-101012-----------------------------
  1880. INT 10 - VIDEO - SET BLOCK OF DAC REGISTERS (VGA/MCGA)
  1881.     AX = 1012h
  1882.     BX = starting color register
  1883.     CX = number of registers to set
  1884.     ES:DX -> table of 3*CX bytes where each 3 byte group represents one
  1885.          byte each of red, green and blue (0-63)
  1886. SeeAlso: AX=1010h,AX=1017h,INT 62/AX=00A5h
  1887. --------V-101013-----------------------------
  1888. INT 10 - VIDEO - SELECT VIDEO DAC COLOR PAGE (VGA)
  1889.     AX = 1013h
  1890.     BL = subfunction
  1891.         00h select paging mode
  1892.         BH = 00h select 4 blocks of 64
  1893.         BH = 01h select 16 blocks of 16
  1894.         01h select page
  1895.         BH = page number (00h to 03h) or (00h to 0Fh)
  1896. Note:    this function is not valid in mode 13h
  1897. SeeAlso: AX=101Ah
  1898. --------V-101015-----------------------------
  1899. INT 10 - VIDEO - READ INDIVIDUAL DAC REGISTER (VGA/MCGA)
  1900.     AX = 1015h
  1901.     BL = palette register number
  1902. Return: DH = red value
  1903.     CH = green value
  1904.     CL = blue value
  1905. SeeAlso: AX=1010h,AX=1017h
  1906. --------V-101017-----------------------------
  1907. INT 10 - VIDEO - READ BLOCK OF DAC REGISTERS (VGA/MCGA)
  1908.     AX = 1017h
  1909.     BX = starting palette register
  1910.     CX = number of palette registers to read
  1911.     ES:DX -> buffer (3 * CX bytes in size) (see also AX=1012h)
  1912. Return: buffer filled with CX red, green and blue triples
  1913. SeeAlso: AX=1012h,AX=1015h,INT 62/AX=00A4h
  1914. --------V-101018-----------------------------
  1915. INT 10 U - VIDEO - SET PEL MASK (VGA/MCGA)
  1916.     AX = 1018h
  1917.     BL = new PEL value
  1918. SeeAlso: AX=1019h
  1919. --------V-101019-----------------------------
  1920. INT 10 U - VIDEO - READ PEL MASK (VGA/MCGA)
  1921.     AX = 1019h
  1922. Return: BL = value read
  1923. SeeAlso: AX=1018h
  1924. --------V-10101A-----------------------------
  1925. INT 10 - VIDEO - GET VIDEO DAC COLOR-PAGE STATE (VGA)
  1926.     AX = 101Ah
  1927. Return: BL = paging mode
  1928.         00h four pages of 64
  1929.         01h sixteen pages of 16
  1930.     BH = current page
  1931. SeeAlso: AX=1013h
  1932. --------V-10101B-----------------------------
  1933. INT 10 - VIDEO - PERFORM GRAY-SCALE SUMMING (VGA/MCGA)
  1934.     AX = 101Bh
  1935.     BX = starting palette register
  1936.     CX = number of registers to convert
  1937. Desc:    convert the RGB values of one or more palette registers such that the
  1938.       resulting values are grays with the same intensities as the original
  1939.       colors
  1940. SeeAlso: AH=12h/BL=33h
  1941. --------V-1010E0-----------------------------
  1942. INT 10 - VIDEO - Diamond Speedstar 24 - SET 24-BIT GRAPHICS MODE
  1943.     AX = 10E0h
  1944.     BL = video mode (see also AH=00h)
  1945.         2Eh = 640x480
  1946. Return: ???
  1947. SeeAlso: AH=00h,AX=10F0h
  1948. --------V-1010F0-----------------------------
  1949. INT 10 - VIDEO - Tseng ET-4000 BIOS - SET HiColor GRAPHICS MODE
  1950.     AX = 10F0h
  1951.     BL = video mode (see also AH=00h)
  1952.         13h = 320x200x32K
  1953.         2Dh = 640x350x32K
  1954.         2Eh = 640x480x32K
  1955.         2Fh = 640x400x32K
  1956.         30h = 800x600x32K
  1957.         3Eh = 640x480x16M (Genoa 7900)
  1958.         FFh Tseng 24-bit color mode
  1959.         BH = mode
  1960.             2Eh = 640x480x16M
  1961. Return: AL = 10h if supported
  1962.     AH = status
  1963.         00h if successful
  1964.         other on error
  1965. Desc:    switch the display into a graphics mode with 15 or more bits per pixel
  1966. Note:    the Tseng HiColor BIOS extensions are supported by:
  1967.       Diamond Computer Systems    SpeedStar HiColor VGA
  1968.       Everex Systems        HC VGA
  1969.       Focus Information Systems    2theMax 4000
  1970.       Cardinal Technologies        VGA732
  1971.       Orchid ProDesigner IIs    Genoa 7900
  1972. SeeAlso: AH=00h,AX=10E0h,AX=10F1h,AX=10F2h
  1973. Index:    video modes
  1974. --------V-1010F1-----------------------------
  1975. INT 10 - VIDEO - Tseng ET-4000 BIOS - GET DAC TYPE
  1976.     AX = 10F1h
  1977. Return: AL = 10h if supported
  1978.     BL = type of digital/analog converter
  1979.         00h normal VGA DAC
  1980.         01h Sierra SC1148x HiColor DAC
  1981.         02h new Sierra DAC
  1982.        else other HiColor DAC
  1983. Desc:    determine which type of digital-to-analog converter is installed on the
  1984.       display board
  1985. SeeAlso: AX=10F0h,AX=10F2h
  1986. --------V-1010F2BL00-------------------------
  1987. INT 10 u - VIDEO - Tseng ET-4000 BIOS - CHECK IF IN HiColor MODE
  1988.     AX = 10F2h
  1989.     BL = 00h
  1990. Return: AX = 0010h if supported
  1991.     BL = video mode type
  1992.         00h normal
  1993.         else HiColor mode
  1994. Desc:    determine whether the display is in a graphics mode with 15 or more
  1995.       bits per pixel color resolution
  1996. SeeAlso: AH=0Fh,AX=10F0h,AX=10F1h
  1997. --------V-1011-------------------------------
  1998. INT 10 - BIOS Window Extension v1.1 - GET WINDOW COORDINATES
  1999.     AH = 11h
  2000. Return: CH,CL = row,column of upper left corner
  2001.     DH,DL = row,column of lower right corner
  2002. Desc:    determine the portion of the display to which output is restricted
  2003. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  2004. SeeAlso: AH=10h"Window",AH=12h"Window"
  2005. --------V-1011-------------------------------
  2006. INT 10 - VIDEO - TEXT-MODE CHARACTER GENERATOR FUNCTIONS (PS, EGA, VGA)
  2007.     AH = 11h
  2008.     The following functions will cause a mode set, completely resetting
  2009.     the video environment, but without clearing the video buffer
  2010.     AL = 00h, 10h: load user-specified patterns
  2011.         ES:BP -> user table
  2012.         CX      = count of patterns to store
  2013.         DX      = character offset into map 2 block
  2014.         BL      = block to load in map 2
  2015.         BH      = number of bytes per character pattern
  2016.     AL = 01h, 11h: load ROM monochrome patterns (8 by 14)
  2017.         BL      = block to load
  2018.     AL = 02h, 12h: load ROM 8 by 8 double-dot patterns
  2019.         BL      = block to load
  2020.     AL = 03h: set block specifier
  2021.         BL      = block specifier
  2022.            (EGA/MCGA) bits 0,1 = block selected by chars with attribute
  2023.                      bit 3 = 0
  2024.                   bits 2,3 = block selected by chars with attribute
  2025.                      bit 3 = 1
  2026.            (VGA) bits 0,1,4 = block selected by attribute bit 3 = 0
  2027.              bits 2,3,5 = block selected by attribute bit 3 = 1
  2028.     AL = 04h, 14h: load ROM 8x16 character set (VGA)
  2029.         BL    = block to load
  2030. Notes:    The routines called with AL=1xh are designed to be called only
  2031.       immediately after a mode set and are similar to the routines called
  2032.       with AL=0xh, except that:
  2033.           Page 0 must be active.
  2034.           Bytes/character is recalculated.
  2035.           Max character rows is recalculated.
  2036.           CRT buffer length is recalculated.
  2037.           CRTC registers are reprogrammed as follows:
  2038.              R09 = bytes/char-1 ; max scan line (mode 7 only)
  2039.              R0A = bytes/char-2 ; cursor start
  2040.              R0B = 0        ; cursor end
  2041.              R12 = ((rows+1)*(bytes/char))-1 ; vertical display end
  2042.              R14 = bytes/char    ; underline loc
  2043.                (*** BUG: should be 1 less ***)
  2044.     the current block specifiers may be determined with INT 10/AH=1Bh,
  2045.       looking at offsets 2Bh and 2Ch of the returned data (VGA only)
  2046. SeeAlso: AH=1Bh,AX=CD10h
  2047. --------V-1011-------------------------------
  2048. INT 10 - VIDEO - Realtek RTVGA - TEXT-MODE CHARACTER GENERATOR FUNCTIONS
  2049.     AH = 11h
  2050.     AL = 07h load user-specified paterns and recalculate mode parms
  2051.          parameters are the same as for AL = 10h
  2052.     AL = 08h load monochrome patterns (8x14) and recalculate mode parms
  2053.          parameters are the same as for AL = 11h
  2054.     AL = 09h load ROM 8 by 8 double-dot patterns and recalculate mode parms
  2055.          parameters are the same as for AL = 12h
  2056.     AL = 0Bh load ROM 8x16 character set (VGA) and recalculate mode parms
  2057.          parameters are the same as for AL = 14h
  2058. Note:    these functions should only be called under the same conditions as
  2059.       AL=1xh (see entry above)
  2060. SeeAlso: AH=11h
  2061. --------V-10110F-----------------------------
  2062. INT 10 - VIDEO - Realtek RTVGA - SET USER 8x8 GRAPHICS CHARACTERS
  2063.     AX = 110Fh
  2064.     ES:BP -> user table for INT 1F
  2065. Note:    this function is meant to be called immediately after a mode set;
  2066.       results are unpredictable at other times
  2067. SeeAlso: AX=1110h,AX=1111h,AX=1112h,AX=1120h
  2068. --------V-101110-----------------------------
  2069. INT 10 - VIDEO - Realtek RTVGA - SET USER GRAPHICS CHARACTERS
  2070.     AX = 1110h
  2071.     ES:BP -> user table
  2072.     CX = bytes per character
  2073.     BL = row specifier
  2074.         00h user set
  2075.         DL = number of rows
  2076.         01h 14 rows
  2077.         02h 25 rows
  2078.         03h 43 rows
  2079. Note:    this function is meant to be called immediately after a mode set;
  2080.       results are unpredictable at other times
  2081. SeeAlso: AX=110Fh,AX=1112h,AX=1121h
  2082. --------V-101111-----------------------------
  2083. INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x14 GRAPHICS CHARACTERS
  2084.     AX = 1111h
  2085.     BL = row specifier (see AX=1121h)
  2086. Note:    this function is meant to be called immediately after a mode set;
  2087.       results are unpredictable at other times
  2088. SeeAlso: AX=110Fh,AX=1110h,AX=1122h
  2089. --------V-101112-----------------------------
  2090. INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x8 DOUBLE-DOT CHARACTERS
  2091.     AX = 1112h
  2092.     BL = row specifier (see AX=1121h)
  2093. Note:    this function is meant to be called immediately after a mode set;
  2094.       results are unpredictable at other times
  2095. SeeAlso: AX=110Fh,AX=1110h,AX=1111h,AX=1123h
  2096. --------V-101120-----------------------------
  2097. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER 8x8 GRAPHICS CHARS (PS,EGA,VGA)
  2098.     AX = 1120h
  2099.     ES:BP -> user table for INT 1F
  2100. Note:    this function is meant to be called immediately after a mode set;
  2101.       results are unpredictable at other times
  2102. SeeAlso: AX=1121h,AX=1122h,AX=1123h,AX=1124h,AX=1125h,INT 1F,INT 43
  2103. --------V-101121-----------------------------
  2104. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER GRAPHICS CHARACTERS (PS,EGA,VGA)
  2105.     AX = 1121h
  2106.     ES:BP -> user table
  2107.     CX = bytes per character
  2108.     BL = row specifier
  2109.         00h user set
  2110.         DL = number of rows
  2111.         01h 14 rows
  2112.         02h 25 rows
  2113.         03h 43 rows
  2114. Note:    this function is meant to be called immediately after a mode set;
  2115.       results are unpredictable at other times
  2116. SeeAlso: AX=1120h,AX=1122h,AX=1123h,AX=1124h,AX=1129h,INT 1F,INT 43
  2117. --------V-101122-----------------------------
  2118. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x14 GRAPHICS CHARS (PS,EGA,VGA)
  2119.     AX = 1122h
  2120.     BL = row specifier (see AX=1121h)
  2121. Notes:    this function is meant to be called immediately after a mode set;
  2122.       results are unpredictable at other times
  2123.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2124. SeeAlso: AX=1111h,AX=1120h,AX=1121h,AX=1123h,AX=1124h,AX=1129h,INT 1F,INT 43
  2125. --------V-101123-----------------------------
  2126. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x8 DOUBLE-DOT CHARS (PS,EGA,VGA)
  2127.     AX = 1123h
  2128.     BL = row specifier (see AX=1121h)
  2129. Notes:    this function is meant to be called immediately after a mode set;
  2130.       results are unpredictable at other times
  2131.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2132. SeeAlso: AX=1112h,AX=1120h,AX=1121h,AX=1122h,AX=1124h,AX=1129h,INT 1F,INT 43
  2133. --------V-101124-----------------------------
  2134. INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPHICS CHARS (VGA,MCGA)
  2135.     AX = 1124h
  2136.     BL = row specifier (see AX=1121h)
  2137. Notes:    this function is meant to be called immediately after a mode set;
  2138.       results are unpredictable at other times
  2139.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2140. SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1129h,INT 1F,INT 43
  2141. --------V-101129-----------------------------
  2142. INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPH CHARS (Compaq Systempro)
  2143.     AX = 1129h
  2144.     BL = row specifier (see AX=1121h)
  2145. Notes:    this function is meant to be called immediately after a mode set;
  2146.       results are unpredictable at other times
  2147.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2148. SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1124h,INT 1F, INT 43
  2149. --------V-101130-----------------------------
  2150. INT 10 - VIDEO - GET FONT INFORMATION (EGA, MCGA, VGA)
  2151.     AX = 1130h
  2152.     BH = pointer specifier
  2153.         00h INT 1Fh pointer
  2154.         01h INT 43h pointer
  2155.         02h ROM 8x14 character font pointer
  2156.         03h ROM 8x8 double dot font pointer
  2157.         04h ROM 8x8 double dot font (high 128 characters)
  2158.         05h ROM alpha alternate (9 by 14) pointer (EGA,VGA)
  2159.         06h ROM 8x16 font (MCGA, VGA)
  2160.         07h ROM alternate 9x16 font (VGA only)
  2161.         11h (UltraVision v2+) 8x20 font (VGA) or 8x19 font (autosync EGA)
  2162.         12h (UltraVision v2+) 8x10 font (VGA) or 8x11 font (autosync EGA)
  2163. Return: ES:BP = specified pointer
  2164.     CX    = bytes/character of on-screen font (not the requested font!)
  2165.     DL    = highest character row on screen
  2166. Note:    for UltraVision v2+, the 9xN alternate fonts follow the corresponding
  2167.       8xN font at ES:BP+256N
  2168. BUG:    the IBM EGA and some other EGA cards return in DL the number of rows on
  2169.       screen rather than the highest row number (which is one less).
  2170. SeeAlso: AX=1100h,AX=1120h,INT 1F,INT 43
  2171.  
  2172. Format of alternate font table [array]:
  2173. Offset    Size    Description
  2174.  00h    BYTE    character to be replaced (00h = end of table)
  2175.  01h  N BYTEs    graphics data for character, one byte per scan line
  2176. --------V-101130BX4D4F-----------------------
  2177. INT 10 - M10_SCR.COM v3.5+ - INSTALLATION CHECK
  2178.     AX = 1130h
  2179.     BX = 4D4Fh
  2180. Return: CX = 4F4Dh if installed
  2181.         ES:BP -> M10_SCR INT 10 handler
  2182. Program: M10_SCR is a shareware extended text mode and font driver by
  2183.       I.V. Morozov
  2184. SeeAlso: INT 16/AX=4D4Fh
  2185. --------V-1012-------------------------------
  2186. INT 10 - BIOS Window Extension v1.1 - GET BLANKING ATTRIBUTE
  2187.     AH = 12h
  2188. Return: BH = attribute to use on blanked lines when scrolling
  2189. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  2190. SeeAlso: AH=11h"Window",AH=12h"Window"
  2191. --------V-1012--BL10-------------------------
  2192. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, EGA, VGA, MCGA) - GET EGA INFO
  2193.     AH = 12h
  2194.     BL = 10h
  2195. Return: BH = 00h color mode in effect (I/O port 3Dxh)
  2196.          01h mono mode in effect (I/O port 3Bxh)
  2197.     BL = installed memory (00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K)
  2198.     CH = feature bits
  2199.     CL = switch settings
  2200.         bit 0: switch 1 OFF
  2201.         bit 1: switch 2 OFF
  2202.         bit 2: switch 3 OFF
  2203.         bit 3: switch 4 OFF
  2204.         bits 4-7: unused
  2205. Note:    one possible check for the presence of an EGA or later display card
  2206.       is to call this function with BH=FFh; if not present, BH will be
  2207.       unchanged on return
  2208. --------V-1012--BL11-------------------------
  2209. INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET BIOS INFO
  2210.     AH = 12h
  2211.     BL = 11h
  2212. Return: AL = 12h if function supported
  2213.         ES:BP -> BIOS info structure
  2214. SeeAlso: AH=12h/BL=12h"TRIDENT"
  2215.  
  2216. Format of Info structure:
  2217. Offset    Size     Description
  2218.  00h    BYTE     ??? (=0)
  2219.  01h    BYTE     OEM Code (00h for original Trident)
  2220.  02h    WORD     ID??? (1073h for 8800BR, 1074 for 8800CS)
  2221.  04h  8 BYTEs     BIOS date ('mm/dd/yy')
  2222.  0Ch    WORD     ???
  2223.  0Eh  8 BYTEs     BIOS Version (' C3-128 ', ' C3-129 ')
  2224. --------V-1012--BL12-------------------------
  2225. INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET VIDEO RAM SIZE
  2226.     AH = 12h
  2227.     BL = 12h
  2228. Return: AL = 12h if function supported
  2229.         AH = number of 256K banks of RAM installed
  2230. SeeAlso: AH=12h/BL=11h"TRIDENT"
  2231. --------V-1012--BL20-------------------------
  2232. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS,EGA,VGA,MCGA) - ALTERNATE PRTSC
  2233.     AH = 12h
  2234.     BL = 20h  select alternate print screen routine
  2235. Desc:    installs a PrtSc routine from the video card's BIOS to replace the
  2236.       default PrtSc handler from the ROM BIOS, which usually does not
  2237.       understand screen heights other than 25 lines
  2238. Note:    some adapters disable print-screen instead of enhancing it
  2239. SeeAlso: INT 05
  2240. --------V-1012--BL2E-------------------------
  2241. INT 10 - Tseng ET-4000 BIOS v3.00 - BUG
  2242.     AH = 12h
  2243.     BL = 2Eh
  2244. Note:    due to an omitted end-of-list marker, this version of the BIOS will
  2245.       crash the system on this function
  2246. --------V-1012--BL30-------------------------
  2247. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - SELECT VERTICAL RESOLUTION
  2248.     AH = 12h
  2249.     BL = 30h
  2250.     AL = vertical resolution
  2251.          00h 200 scan lines
  2252.          01h 350 scan lines
  2253.          02h 400 scan lines
  2254. Return: AL = 12h if function supported
  2255. Desc:    specify the number of scan lines used to display text modes
  2256. Note:    the specified resolution will take effect on the next mode set
  2257. SeeAlso: AH=00h
  2258. --------V-1012--BL31-------------------------
  2259. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - PALETTE LOADING
  2260.     AH = 12h
  2261.     BL = 31h
  2262.     AL = new state
  2263.         00h enable default palette loading
  2264.         01h disable default palette loading
  2265. Return: AL = 12h if function supported
  2266. Desc:    specify whether a default palette should be loaded when the display
  2267.       mode is set
  2268. SeeAlso: AH=00h
  2269. --------V-1012--BL32-------------------------
  2270. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - VIDEO ADDRESSING
  2271.     AH = 12h
  2272.     BL = 32h
  2273.     AL = new state
  2274.         00h enable video addressing
  2275.         01h disable video addressing
  2276. Return: AL = 12h if function supported
  2277. Desc:    specify whether the CPU should have access to video memory and the
  2278.       display adapters I/O registers
  2279. --------V-1012--BL33-------------------------
  2280. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - GRAY-SCALE SUMMING
  2281.     AH = 12h
  2282.     BL = 33h
  2283.     AL = new state
  2284.         00h enable gray scale summing
  2285.         01h disable gray scale summing
  2286. Return: AL = 12h if function supported
  2287. Desc:    specify whether or not colors should be converted to gray scale when
  2288.       palette or color registers are loaded
  2289. SeeAlso: AX=101Bh,AX=BF06h,AX=BF08h
  2290. --------V-1012--BL34-------------------------
  2291. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - CURSOR EMULATION
  2292.     AH = 12h
  2293.     BL = 34h
  2294.     AL = new state
  2295.         00h enable alphanumeric cursor emulation
  2296.         01h disable alphanumeric cursor emulation
  2297. Return: AL = 12h if function supported
  2298. Desc:    specify whether the BIOS should automatically remap cursor start/end
  2299.       according to the current character height in text modes
  2300. SeeAlso: AH=01h,AH=03h
  2301. --------V-1012--BL35-------------------------
  2302. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS) - DISPLAY-SWITCH INTERFACE
  2303.     AH = 12h
  2304.     BL = 35h
  2305.     AL = subfunction
  2306.         00h initial adapter video off
  2307.         01h initial planar video on
  2308.         02h switch active video off
  2309.         03h switch inactive video on
  2310.         80h *UNDOCUMENTED* set system board video active flag
  2311.     ES:DX -> buffer for 128 byte save area (if AL = 0, 2 or 3)
  2312. Return: AL = 12h if function supported
  2313. Desc:    switch between two video adapters which may otherwise have address
  2314.       conflicts
  2315. --------V-1012--BL36-------------------------
  2316. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, VGA) - VIDEO REFRESH CONTROL
  2317.     AH = 12h
  2318.     BL = 36h
  2319.     AL = new state
  2320.         00h enable refresh
  2321.         01h disable refresh
  2322. Return: AL = 12h if function supported
  2323. Desc:    specify whether the contents of video memory should be displayed on
  2324.       the screen; disabling refresh effectively blanks the screen
  2325. SeeAlso: AX=BF05h
  2326. --------V-1012--BH55-------------------------
  2327. INT 10 - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES
  2328.     AH = 12h
  2329.     BH = 55h
  2330.     BL = subfunction
  2331.         00h disable enhanced features
  2332.         01h enable enhanced features
  2333.         02h get status
  2334.         Return: AL = status flags (see below)
  2335.         03h disable register trapping (CGA emulation)
  2336.         04h enable register trapping
  2337.         05h program video mode
  2338.         ES:BP -> video mode table (see below)
  2339.         06h get mode table
  2340.         AL = video mode
  2341.         Return: ES:BP -> table suitable for mode AL (and subfnc BL=05h)
  2342.             BP = FFFFh on error
  2343. SeeAlso: AH=FFh"Oak"
  2344.  
  2345. Bitfields for status flags:
  2346.  bit 3    set if enhanced features enabled
  2347.  bits 7-5 monitor type
  2348.     000 PS/2 mono
  2349.     001 PS/2 color
  2350.     010 multi-sync
  2351.     011 Taxan 650 25kHz
  2352.     100 RGB
  2353.     101 mono
  2354.     110 EGA
  2355.     111 Compaq internal
  2356.  
  2357. Format of ATI VGA Wonder video mode table:
  2358. Offset    Size    Description
  2359.  00h    BYTE    number of columns
  2360.  01h    BYTE    maximum row (number of rows - 1)
  2361.  02h    BYTE    scan lines per row
  2362.  03h    WORD    video buffer size in bytes
  2363.  05h  4 BYTEs    values for Sequencer registers 1-4
  2364.  09h    BYTE    value for Miscellaneous Output register
  2365.  0Ah 25 BYTEs    values for CRTC registers 00h-18h
  2366.         00h horizontal total size (chars)
  2367.         01h horizontal displayed (chars)
  2368.         02h horizontal sync position (chars)
  2369.         03h horizontal sync width (chars)
  2370.         04h vertical total size (char rows)
  2371.         05h vertical total adjust (scan lines)
  2372.         06h vertical displayed (char rows)
  2373.         07h vertical sync position (char rows)
  2374.         08h interlace mode
  2375.         09h max scan line in row
  2376.         0Ah cursor start scan line
  2377.         0Bh cursor end scan line
  2378.         0Ch screen memory start (high)
  2379.         0Dh screen memory start (low)
  2380.         0Eh cursor address (high)
  2381.         0Fh cursor address (low)
  2382.         10h light pen (high)
  2383.         11h light pen (low)
  2384.  23h 20 BYTEs    default palette (values for Attribute Controller regs 00h-13h)
  2385.  37h  9 BYTEs    values for Graphics Controller registers 00h-08h
  2386. --------V-1012--BL74-------------------------
  2387. INT 10 - Tseng ET-4000 BIOS v3.00 - BUG
  2388.     AH = 12h
  2389.     BL = 74h
  2390. Note:    due to an omitted end-of-list marker, this version of the BIOS will
  2391.       crash the system on this function
  2392. --------V-1012--BL80-------------------------
  2393. INT 10 - Tseng ET-4000 BIOS v3.00 - BUG
  2394.     AH = 12h
  2395.     BL = 80h
  2396. Note:    due to an omitted end-of-list marker, this version of the BIOS will
  2397.       crash the system on this function
  2398. --------V-1012--BL80-------------------------
  2399. INT 10 - Cirrus Logic BIOS - INQUIRE VGA TYPE
  2400.     AH = 12h
  2401.     BL = 80h
  2402. Return: AX = controller type (see below)
  2403.     BL = silicon revision number (bit 7 set if not available)
  2404. SeeAlso: AH=12h/BL=81h,AH=12h/BL=82h,AH=12h/BL=85h,AH=12h/BL=9Ah,AH=12h/BL=A1h
  2405.  
  2406. Values for controller type:
  2407.  0000h    no extended alternate select support
  2408.  0002h    510/520
  2409.  0003h    610/620
  2410.  0004h    5320
  2411.  0005h    6410
  2412.  0006h    5410
  2413.  0007h    6420
  2414.  0008h    6412
  2415.  0010h    5401
  2416.  0011h    5402
  2417.  0012h    5420
  2418.  0013h    5422
  2419.  0014h    5424
  2420.  0015h    5426
  2421.  0016h    5420r1
  2422.  0017h    5402r1
  2423.  0018h    5428
  2424.  0020h    6205/15/25
  2425.  0030h    5432
  2426.  0031h    5434
  2427. --------V-1012--BL81-------------------------
  2428. INT 10 - Cirrus Logic BIOS - GET BIOS VERSION NUMBER
  2429.     AH = 12h
  2430.     BL = 81h
  2431. Return: AH = BIOS major version
  2432.     AL = BIOS minor version
  2433. SeeAlso: AH=12h/BL=80h,AH=12h/BL=82h
  2434. --------V-1012--BL82-------------------------
  2435. INT 10 - Cirrus Logic BIOS - GET DESIGN REVISION CODE
  2436.     AH = 12h
  2437.     BL = 82h
  2438. Return: AL = chip revision
  2439. SeeAlso: AH=12h/BL=80h,AH=12h/BL=81h
  2440. --------V-1012--BL85-------------------------
  2441. INT 10 - Cirrus Logic BIOS - GET INSTALLED MEMORY
  2442.     AH = 12h
  2443.     BL = 85h
  2444. Return: AL = number of 64K banks of video memory
  2445. SeeAlso: AH=12h/BL=80h,AH=12h/BL=93h
  2446. --------V-1012--BL93-------------------------
  2447. INT 10 - Cirrus Logic BIOS - FORCE 8-BIT OR 16-BIT OPERATION
  2448.     AH = 12h
  2449.     BL = 93h
  2450.     AL = new I/O width (00h = 16 bits, 01h = 8 bits)
  2451. SeeAlso: AH=12h/BL=9Ah
  2452. --------V-1012--BL9A-------------------------
  2453. INT 10 - Cirrus Logic BIOS - GET USER OPTIONS
  2454.     AH = 12h
  2455.     BL = 9Ah
  2456. Return: AX = options word 1 (see below)
  2457.     CX = options word 2 (see below)
  2458. SeeAlso: AH=12h/BL=80h,AH=12h/BL=93h,AH=12h/BL=A0h,AH=12h/BL=A3h,AH=12h/BL=A4h
  2459.  
  2460. Bitfields for options word 1:
  2461.  bits 0,1 reserved
  2462.  bits 2-4 monitor type
  2463.  bits 5-6 maximum vertical resolution
  2464.  bits 7-9 reserved
  2465.  bit 10    force 8-bit operation
  2466.  bits 11-13 reserved
  2467.  bit 14    vertical refresh frequency at 640x480
  2468.  bit 15    reserved
  2469.  
  2470. Bitfields for options word 2:
  2471.  bits 0-3 reserved
  2472.  bits 4-5 vertical refresh frequency at 1280x1024
  2473.  bits 6-10 reserved
  2474.  bits 11-12 vertical refresh frequency at 800x600
  2475.  bits 13-15 vertical refresh frequency at 1024x768
  2476. --------V-1012--BLA0-------------------------
  2477. INT 10 - Cirrus Logic BIOS - GET VIDEO MODE AVAILABILITY
  2478.     AH = 12h
  2479.     BL = A0h
  2480.     AL = video mode number (00h-7Fh)
  2481. Return: AH bit 0: video mode supported
  2482.     BX = offset of BIOS subroutine to fixup standard video parameters
  2483.         (call subroutine with DS:SI and ES:DI as returned by this call)
  2484.     DS:SI -> standard video parameters or FFFFh:FFFFh
  2485.     ES:DI -> supplemental video parameters or FFFFh:FFFFh
  2486. SeeAlso: AH=00h,AH=12h/BL=9Ah,AH=12h/BL=A1h
  2487. --------V-1012--BLA1-------------------------
  2488. INT 10 - Cirrus Logic BIOS - READ MONITOR TYPE AND ID FROM 15-PIN CONNECTOR
  2489.     AH = 12h
  2490.     BL = A1h
  2491. Return: BH = monitor ID (see below)
  2492.     BL = monitor type (00h color, 01h grayscale, 02h no display)
  2493. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A2h
  2494.  
  2495. Values for monitor ID:
  2496.  00h-08h reserved
  2497.  09h    IBM 8604/8507 or equivalent
  2498.  0Ah    IBM 8514 or equivalent
  2499.  0Bh    IBM 8515 or equivalent
  2500.  0Dh    IBM 8503 or equivalent
  2501.  0Eh    IBM 8512/8513 or equivalent
  2502.  0Fh    no monitor
  2503. --------V-1012--BLA2-------------------------
  2504. INT 10 - Cirrus Logic BIOS - SET MONITOR HORIZONTAL RETRACE FREQUENCY
  2505.     AH = 12h
  2506.     BL = A2h
  2507.     AL = retrace rate
  2508.         00h standard VGA (31.5 kHz)
  2509.         01h 8514-compatible (31.5 kHz and 35.5 kHz interlaced)
  2510.         02h SuperVGA (31.5-35.1 kHz)
  2511.         03h extended SuperVGA (31.5-35.5 kHz)
  2512.         04h multi-frequency (31.5-37.8 kHz)
  2513.         05h extended multi-frequency (31.5-48.0 kHz)
  2514.         06h super multi-frequency (31.5-56.0 kHz)
  2515.         07h extended super multi-frequency (31.5-64.0 kHz)
  2516. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A0h,AH=12h/BL=A4h
  2517. --------V-1012--BLA3-------------------------
  2518. INT 10 - Cirrus Logic BIOS - SET VGA REFRESH
  2519.     AH = 12h
  2520.     BL = A3h
  2521.     AL = refresh rate for 640x480 (00h normal, 01h high)
  2522. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A4h
  2523. --------V-1012--BLA4-------------------------
  2524. INT 10 - Cirrus Logic BIOS - SET MONITOR TYPE
  2525.     AH = 12h
  2526.     BL = A4h
  2527.     AL bits 3-0 = maximum vertical resolution
  2528.         (0 = 480 scanlines, 1 = 600, 2 = 768, 3 = 1024, other reserved)
  2529.     AL bits 7-4 = vertical refresh at 640x480
  2530.         (0 = 60Hz, 1 = 72Hz, other reserved)
  2531.     BH bits 3-0 = vertical refresh at 800x600
  2532.         (0 = 56Hz, 1 = 60Hz, 2 = 72Hz, other reserved)
  2533.     BH bits 7-4 = vertical refresh at 1024x768
  2534.         (0=87Hz-int, 1=60Hz, 2=70Hz, 3=72Hz, 4=76Hz, other reserved)
  2535.     CH bits 4-7 = vertical refresh at 1280x1024
  2536.         (0=87Hz-int, 1=60Hz, 2=70Hz, other reserved)
  2537. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A3h
  2538. --------V-1012--BLBE-------------------------
  2539. INT 10 - Tseng ET-4000 BIOS v3.00 - BUG
  2540.     AH = 12h
  2541.     BL = BEh
  2542. Note:    due to an omitted end-of-list marker, this version of the BIOS will
  2543.       crash the system on this function
  2544. --------V-1012--BLC6-------------------------
  2545. INT 10 - Tseng ET-4000 BIOS v3.00 - BUG
  2546.     AH = 12h
  2547.     BL = C6h
  2548. Note:    due to an omitted end-of-list marker, this version of the BIOS will
  2549.       crash the system on this function
  2550. --------V-1012--BLF0-------------------------
  2551. INT 10 - Tseng ET-4000 BIOS v3.00 - BUG
  2552.     AH = 12h
  2553.     BL = F0h
  2554. Note:    due to an omitted end-of-list marker, this version of the BIOS will
  2555.       crash the system on this function
  2556. --------V-1013-------------------------------
  2557. INT 10 - VIDEO - WRITE STRING (AT and later,EGA)
  2558.     AH = 13h
  2559.     AL = write mode
  2560.        bit 0: update cursor after writing
  2561.        bit 1: string contains alternating characters and attributes
  2562.     BH = page number
  2563.     BL = attribute if string contains only characters
  2564.     CX = number of characters in string
  2565.     DH,DL = row,column at which to start writing
  2566.     ES:BP -> string to write
  2567. Notes:    recognizes CR, LF, BS, and bell
  2568.     also available PC or XT with EGA or higher
  2569.     HP 95LX only supports write mode 00h
  2570. BUG:    on the IBM VGA Adapter, any scrolling which may occur is performed on
  2571.       the active page rather than the requested page
  2572. SeeAlso: AH=09h,AH=0Ah
  2573. --------V-101400-----------------------------
  2574. INT 10 - VIDEO - LOAD USER-SPECIFIED LCD CHARACTER FONT (CONV,Compaq Port 386)
  2575.     AX = 1400h
  2576.     ES:DI -> character font
  2577.     BH = number of bytes per character
  2578.         08h or 10h (Compaq)
  2579.     BL = 00h load main font (block 0)
  2580.          01h load alternate font (block 1)
  2581.     CX = number of characters to store
  2582.     DX = character offset into RAM font area
  2583. SeeAlso: AH=11h,AX=1401h
  2584. --------V-101401-----------------------------
  2585. INT 10 - VIDEO - LOAD SYSTEM ROM DEFAULT LCD CHARACTER FONT (CONV,CP386)
  2586.     AX = 1401h
  2587.     BL = font to load
  2588.         00h main font (block 0)
  2589.         01h alternate font (block 1)
  2590. SeeAlso: AH=11h,AX=1400h
  2591. --------V-101402-----------------------------
  2592. INT 10 - VIDEO - SET MAPPING OF LCD HIGH INTENSITY ATTRIBUTES (CONV,CP386)
  2593.     AX = 1402h
  2594.     BL = function
  2595.         00h ignore high intensity attribute
  2596.         01h map high intensity to underscore
  2597.         02h map high intensity to reverse video
  2598.         03h map high intensity to selected alternate font
  2599.         B0h half intensity (Compaq)
  2600.         B1h toggle active intensity bit interpretation (CP386)
  2601. --------V-1015-------------------------------
  2602. INT 10 - VIDEO - GET PHYSICAL DISPLAY PARAMETERS (CONVERTIBLE)
  2603.     AH = 15h
  2604. Return: AX = alternate display adapter type (see below)
  2605.     ES:DI -> parameter table (see below)
  2606. SeeAlso: AH=1Bh
  2607.  
  2608. Values for alternate display adapter type:
  2609.  0000h    none
  2610.  5140h    LCD
  2611.  5153h    CGA
  2612.  5151h    mono
  2613.  
  2614. Format of display parameter table:
  2615. Offset    Size    Description
  2616.  00h    WORD    monitor model number
  2617.  02h    WORD    vertical pixels per meter
  2618.  04h    WORD    horizontal pixels per meter
  2619.  06h    WORD    total vertical pixels
  2620.  08h    WORD    total horizontal pixels
  2621.  0Ah    WORD    horizontal pixel separation in micrometers
  2622.  0Ch    WORD    vertical pixel separation in micrometers
  2623. --------V-1015-------------------------------
  2624. INT 10 - VIDEO - SET SUPERIMPOSE MODE (Sperry PC)
  2625.     AH = 15h
  2626.     AL = superimpose mode
  2627.         00h show graphics screen
  2628.         01h show text screen
  2629.         02h show text screen superimposed on graphics screen
  2630. --------V-101A00-----------------------------
  2631. INT 10 - VIDEO - GET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
  2632.     AX = 1A00h
  2633. Return: AL = 1Ah if function was supported
  2634.         BL = active display code (see below)
  2635.         BH = alternate display code
  2636. SeeAlso: AH=12h/BL=35h,AX=1A01h,AH=1Bh
  2637.  
  2638. Values for display combination code:
  2639.  00h    no display
  2640.  01h    monochrome adapter w/ monochrome display
  2641.  02h    CGA w/ color display
  2642.  03h    reserved
  2643.  04h    EGA w/ color display
  2644.  05h    EGA w/ monochrome display
  2645.  06h    PGA w/ color display
  2646.  07h    VGA w/ monochrome analog display
  2647.  08h    VGA w/ color analog display
  2648.  09h    reserved
  2649.  0Ah    MCGA w/ digital color display
  2650.  0Bh    MCGA w/ monochrome analog display
  2651.  0Ch    MCGA w/ color analog display
  2652.  FFh    unknown display type
  2653. --------V-101A01-----------------------------
  2654. INT 10 - VIDEO - SET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
  2655.     AX = 1A01h
  2656.     BL = active display code (see AX=1A00h)
  2657.     BH = alternate display code
  2658. Return: AL = 1Ah if function was supported
  2659. SeeAlso: AH=12h/BL=35h,AX=1A00h
  2660. --------V-101B-------------------------------
  2661. INT 10 - VIDEO - FUNCTIONALITY/STATE INFORMATION (PS,VGA/MCGA)
  2662.     AH = 1Bh
  2663.     BX = implementation type
  2664.         0000h return funtionality/state information
  2665.     ES:DI -> 64-byte buffer for state information (see below)
  2666. Return: AL = 1Bh if function supported
  2667.         ES:DI buffer filled with state information
  2668. BUG:    Trident 8900 (BIOS D3.0 11/12/91) and Trident 9000 (C3.0 10/25/91)
  2669.       do not correctly set the fields at offsets 27h and 29h of the
  2670.       state information
  2671. SeeAlso: AH=15h,AX=1A00h,AX=1F01h
  2672.  
  2673. Format of state information:
  2674. Offset    Size    Description
  2675.  00h    DWORD    address of static funtionality table (see below)
  2676.  04h    BYTE    video mode in effect
  2677.  05h    WORD    number of columns
  2678.  07h    WORD    length of regen buffer in bytes
  2679.  09h    WORD    starting address of regen buffer
  2680.  0Bh    WORD    cursor position for page 0
  2681.  0Dh    WORD    cursor position for page 1
  2682.  0Fh    WORD    cursor position for page 2
  2683.  11h    WORD    cursor position for page 3
  2684.  13h    WORD    cursor position for page 4
  2685.  15h    WORD    cursor position for page 5
  2686.  17h    WORD    cursor position for page 6
  2687.  19h    WORD    cursor position for page 7
  2688.  1Bh    WORD    cursor type
  2689.  1Dh    BYTE    active display page
  2690.  1Eh    WORD    CRTC port address
  2691.  20h    BYTE    current setting of register (3?8)
  2692.  21h    BYTE    current setting of register (3?9)
  2693.  22h    BYTE    number of rows
  2694.  23h    WORD    bytes/character
  2695.  25h    BYTE    display combination code of active display
  2696.  26h    BYTE    DCC of alternate display
  2697.  27h    WORD    number of colors supported in current mode
  2698.  29h    BYTE    number of pages supported in current mode
  2699.  2Ah    BYTE    number of scan lines active
  2700.         (0,1,2,3) = (200,350,400,480)
  2701.         Tseng ET3000: (4,5,6 = 512,600,768)
  2702.  2Bh    BYTE    primary character block
  2703.  2Ch    BYTE    secondary character block
  2704.  2Dh    BYTE    miscellaneous flags (see below)
  2705.  2Eh  3 BYTEs    reserved (00h)
  2706.  31h    BYTE    video memory available
  2707.         00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K
  2708.  32h    BYTE    save pointer state flags (see below)
  2709.  33h 13 BYTEs    reserved (00h)
  2710.  
  2711. Bitfields for miscellaneous flags:
  2712.  bit 0    all modes on all displays on
  2713.  bit 1    gray summing on
  2714.  bit 2    monochrome display attached
  2715.  bit 3    default palette loading disabled
  2716.  bit 4    cursor emulation enabled
  2717.  bit 5    0 = intensity; 1 = blinking
  2718.  bit 6    PS/2 P70 plasma display (without 9-dot wide font) active
  2719.  bit 7    reserved
  2720.  
  2721. Bitfields for save pointer state flags:
  2722.  bit 0    512 character set active
  2723.  bit 1    dynamic save area present
  2724.  bit 2    alpha font override active
  2725.  bit 3    graphics font override active
  2726.  bit 4    palette override active
  2727.  bit 5    DCC override active
  2728.  bits 6-7 reserved
  2729.  
  2730. Format of Static Functionality Table:
  2731. Offset    Size    Description
  2732.  00h    BYTE    modes supported #1
  2733.         bit 0 to bit 7 = 1 modes 0,1,2,3,4,5,6 supported
  2734.  01h    BYTE    modes supported #2
  2735.         bit 0 to bit 7 = 1 modes 8,9,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh supported
  2736.  02h    BYTE    modes supported #3
  2737.         bit 0 to bit 3 = 1 modes 10h,11h,12h,13h supported
  2738.         bit 4 to bit 7 reserved
  2739.  03h    BYTE    (IBM) reserved
  2740.         (Tseng ET3000/4000) modes supported #4
  2741.                 bit 0 to bit 7 = modes 18h-1Fh supported
  2742.  04h    BYTE    (IBM) reserved
  2743.         (Tseng ET3000/4000) modes supported #5
  2744.                 bit 0 to bit 7 = modes 20h-27h supported
  2745.  05h    BYTE    (IBM) reserved
  2746.         (Tseng ET3000/4000) modes supported #6
  2747.                 bit 0 to bit 7 = modes 28h-2Fh supported
  2748.  06h    BYTE    (IBM) reserved
  2749.         (Tseng ET3000/4000) modes supported #7
  2750.                 bit 0 to bit 7 = modes 30h-37h supported
  2751.  07h    BYTE    scan lines supported
  2752.         bit 0 to bit 2 = 1 if scan lines 200,350,400 supported
  2753.  08h    BYTE    total number of character blocks available in text modes
  2754.  09h    BYTE    maximum number of active character blocks in text modes
  2755.  0Ah    WORD    miscellaneous function support flags (see below)
  2756.  0Ch    WORD    reserved
  2757.  0Eh    BYTE    save pointer function flags (see below)
  2758.  0Fh    BYTE    reserved
  2759.  
  2760. Bitfields for miscellaneous function support flags:
  2761.  bit 0    all modes on all displays function supported
  2762.  bit 1    gray summing function supported
  2763.  bit 2    character font loading function supported
  2764.  bit 3    default palette loading enable/disable supported
  2765.  bit 4    cursor emulation function supported
  2766.  bit 5    EGA palette present
  2767.  bit 6    color palette present
  2768.  bit 7    color paging function supported
  2769.  bit 8    light pen supported
  2770.  bit 9    save/restore state function 1Ch supported
  2771.  bit 10 intensity blinking function supported
  2772.  bit 11 Display Combination Code supported
  2773.  bits 12-15 reserved
  2774.  
  2775. Bitfields for save pointer function flags:
  2776.  bit 0    512 character set supported
  2777.  bit 1    dynamic save area supported
  2778.  bit 2    alpha font override supported
  2779.  bit 3    graphics font override supported
  2780.  bit 4    palette override supported
  2781.  bit 5    DCC extension supported
  2782.  bits 6-7 reserved
  2783. --------V-101C-------------------------------
  2784. INT 10 - VIDEO - SAVE/RESTORE VIDEO STATE (PS50+,VGA)
  2785.     AH = 1Ch
  2786.     AL = function
  2787.         00h return state buffer size
  2788.         Return: BX = number of 64-byte blocks needed
  2789.         01h save video state
  2790.         ES:BX -> buffer
  2791.         02h restore video state
  2792.         ES:BX -> buffer containing previously saved state
  2793.     CX = requested states
  2794.          bit 0 video hardware
  2795.          bit 1 BIOS data areas
  2796.          bit 2 color registers and DAC state
  2797.          bits 3-15 reserved
  2798. Return: AL = 1Ch if function supported
  2799. Notes:    many BIOSes corrupt the video registers when saving the state, so a
  2800.       program should restore the state immediately after saving it (the
  2801.       saved data is uncorrupted)
  2802.     the BIOS data area consists of the 96 bytes from 0040h:0049h-00A8h
  2803.  
  2804. Format of video hardware state:
  2805. Offset    Size    Description
  2806.  00h    BYTE    sequencer index register
  2807.  01h    BYTE    CRTC index register
  2808.  02h    BYTE    graphics controller index register
  2809.  03h    BYTE    attribute controller index register
  2810.  04h    BYTE    feature controller register
  2811.  05h  4 BYTEs    sequencer registers
  2812.  09h    BYTE    sequencer register 0
  2813.  0Ah 25 BYTEs    CRTC registers 0-8
  2814.  23h 16 BYTEs    palette registers 00h-0Fh
  2815.  33h  4 BYTEs    attribute registers 10h-13h
  2816.  37h  9 BYTEs    graphics controller registers 0-8
  2817.  40h    BYTE    CRTC base address (low)
  2818.  41h    BYTE    CRTC base address (high)
  2819.  42h    BYTE    plane 0 latch
  2820.  43h    BYTE    plane 1 latch
  2821.  44h    BYTE    plane 2 latch
  2822.  45h    BYTE    plane 3 latch
  2823.  
  2824. Format of DAC state:
  2825. Offset    Size    Description
  2826.  00h    BYTE    read/write mode DAC
  2827.  01h    BYTE    pixel address
  2828.  02h    BYTE    pixel mask
  2829.  03h 768 BYTEs    color data (256 triples)
  2830. 303h    BYTE    color select register
  2831. --------V-101D-------------------------------
  2832. INT 10 - SpeedSTAR Plus BIOS v4.23+ - SET SYNC PARAMETERS
  2833.     AH = 1Dh
  2834.     AL = video mode
  2835.     ES = caller's segment
  2836. Return: nothing
  2837. Note:    the caller's segment contains at offset 5Ch (FCB field in PSP)
  2838.       or 100h a table with sync parameters (BIOS looks at both offsets)
  2839.  
  2840. Format of sync table:
  2841. Offset    Size    Description
  2842.  00h  9 BYTEs    ID contains string 'ey5CENTER'
  2843.  09h  5 BYTEs    sync parameters for 640x480 modes 11h,12h,25h,26h,2Eh
  2844.  0Bh  5 BYTEs    sync parameters for 800x600 modes 29h,30h,2Ah
  2845.  13h  5 BYTEs    sync parameters for 1024x768 modes 37h,38h
  2846. --------V-101D-------------------------------
  2847. INT 10 - Tseng ET-4000 BIOS v3.00 - BUG
  2848.     AH = 1Dh
  2849. Note:    this version of the BIOS jumps to a random location on this function
  2850.       due to a fencepost error
  2851. --------V-101F00-----------------------------
  2852. INT 10 - VIDEO - XGA - GET DMQS (Display Mode Query and Set) DATA LENGTH
  2853.     AX = 1F00h
  2854. Return: AL = 1Fh if supported
  2855.         BX = number of bytes of DMQS data
  2856. Note:    not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
  2857.       and later models.
  2858. SeeAlso: AX=1F01h
  2859. --------V-101F01-----------------------------
  2860. INT 10 - VIDEO - XGA - READ DMQS DATA
  2861.     AX = 1F01h
  2862.     ES:DI -> user buffer for return data (call AX=1F00h for size)
  2863. Return: AL = 1Fh if function supported
  2864.     user buffer filled with DMQS data, see below.
  2865. Note:    not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
  2866.       and later models.
  2867. SeeAlso: AH=1Bh,AX=1F00h,AX=3000h
  2868.  
  2869. Format of DMQS buffer:
  2870. Offset    Size    Description
  2871.  00h    WORD    offset (in bytes) to DMQS data for next XGA instance
  2872.  02h    BYTE    slot number
  2873.  03h    BYTE    XGA implementation function level identifier
  2874.  04h    BYTE    XGA implementation resolution level identifier
  2875.  05h    WORD    vendor identifier - identifies card vendor
  2876.  07h    WORD    vendor defined field
  2877.  09h    WORD    XGA adapter I/O register base address
  2878.  0Bh    WORD    XGA coprocessor register base address
  2879.         (paragraph--multiply by 10h to get physical address)
  2880.  0Dh    WORD    1 Megabyte system video memory aperture
  2881.         0000h if not allocated
  2882.         (Multiply by 100000h to get physical address)
  2883.  0Fh    WORD    4 Megabyte system video memory aperture
  2884.         0000h if not allocated
  2885.         (multiply by 100000h to get physical address)
  2886.  11h    WORD    video memory base address
  2887.         (multiply by 100000h to get physical address)
  2888.  13h    WORD    composite ID of the attached display
  2889.  15h    BYTE    amount of video memory available, in multiples of 256K bytes
  2890.  16h    DWORD    alternate XGA coprocessor register base address.  0 = none.
  2891.  1Ah    var    DMQS Data for further XGA Instances (as above)
  2892. Note:    "Instances" refers to the capability of having up to 8 XGA
  2893.       adapters in one computer.
  2894. --------V-103000CX0000-----------------------
  2895. INT 10 - VIDEO - LOCATE 3270PC CONFIGURATION TABLE (INSTALLATION CHECK)
  2896.     AX = 3000h
  2897.     CX = 0000h
  2898.     DX = 0000h
  2899. Return: CX:DX -> 3270PC configuration table (see below)
  2900.     CX:DX = 0000h:0000h if 3270PC Control Program not active
  2901. SeeAlso: AX=1F01h
  2902.  
  2903. Format of 3270 PC configuration table:
  2904. Offset    Size    Description
  2905.  00h    BYTE    aspect ratio X
  2906.  01h    BYTE    aspect ratio Y
  2907.  02h    BYTE    monitor type (see below)
  2908.  03h    BYTE    reserved
  2909.  04h    BYTE    adapter ID
  2910.         00h = 5151/5272 adapter
  2911.         04h = 5151/5272 with XGA adapter
  2912.         30h = 3295 or 3270PC G/GX adapter
  2913.  05h    BYTE    reserved
  2914.  06h    BYTE    function flags 1 (see below)
  2915.  07h    BYTE    function flags 2
  2916.         bit 6: GPI graphics supported
  2917.  08h    WORD    segment address of Control Program Level table (see below)
  2918.  0Ah 10 BYTEs    reserved
  2919.  
  2920. Values for monitor type:
  2921.  00h    5151 (mono) or 5272 (color)
  2922.  01h    3295
  2923.  02h    5151 or 5272 with XGA (???) graphics adapter
  2924.  03h    5279 with 3270PC G adapter
  2925.  04h    5379 model C01 with 3270PC GX adapter
  2926.  05h    5379 model M01 with 3270PC GX adapter
  2927.  07h    non-3270PC with 3270 Workstation Program
  2928.  FFh    3270PC Control Program not loaded
  2929.  
  2930. Bitfields for function flags 1:
  2931.  bit 7    mono text, 1 page
  2932.  bit 6    color text, 1 page
  2933.  bit 5    color text, 4 pages
  2934.  bit 4    CGA color graphics
  2935.  bit 3    720x350 two-color graphics
  2936.  bit 2    360x350 four-color graphics
  2937.  bit 1    720x350 eight-color graphics
  2938.  
  2939. Format of Control Program Level table:
  2940. Offset    Size    Description
  2941.  00h    WORD    program version
  2942.         02xxh = 3270PC Control Program v2.xx
  2943.         03xxh = 3270PC Control Program v3.xx
  2944.         04xxh = 3270 Workstation Program v1.xx
  2945.  02h    BYTE    Control Program ID (00h)
  2946.  03h 27 BYTEs    Control Program Descriptor ("IBM 3270 PC CONTROL PROGRAM")
  2947. --------a-103800-----------------------------
  2948. INT 10 - Tinytalk Personal v1.09f+ - GET CONFIGURATION INFO
  2949.     AX = 3800h
  2950. Return: ES:DI -> configuration info (see below)
  2951. Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
  2952. Notes:    this call is also used as the installation check by verifying that the
  2953.       returned ES:DI points at valid configuration info
  2954.     Tinytalk v1.09f ignores AL and always returns the configuration info;
  2955.       v1.10 adds several subfunctions selected with AL
  2956. SeeAlso: AX=3801h,AX=3803h,AX=3806h,AH=39h,INT 14/AX=F0F1h
  2957. SeeAlso: INT 2F/FB00h"AutoBraille"
  2958. Index:    installation check;Tinytalk Personal
  2959.  
  2960. Format of configuration info:
  2961. Offset    Size    Description
  2962.  00h  8 BYTEs    signature "TTCONFIG"
  2963.  08h    WORD    size of configuration data, not counting signature, this WORD,
  2964.         or the following byte
  2965.  0Ah    BYTE    ???
  2966.  0Bh    ???    configuration data
  2967. --------a-103801-----------------------------
  2968. INT 10 - Tinytalk Personal v1.10 - ???
  2969.     AX = 3801h
  2970.     DL = ???
  2971. Return: ???
  2972. SeeAlso: AX=3800h,AX=3802h
  2973. --------a-103802-----------------------------
  2974. INT 10 - Tinytalk Personal v1.10 - ???
  2975.     AX = 3802h
  2976.     DL = ???
  2977. Return: ???
  2978. SeeAlso: AX=3800h,AX=3801h
  2979. --------a-103803-----------------------------
  2980. INT 10 - Tinytalk Personal v1.10 - GET ???
  2981.     AX = 3803h
  2982. Return: AL = ???
  2983. SeeAlso: AX=3800h,AX=3804h,AX=3805h
  2984. --------a-103804-----------------------------
  2985. INT 10 - Tinytalk Personal v1.10 - GET ???
  2986.     AX = 3804h
  2987. Return: AX = ???
  2988. SeeAlso: AX=3800h,AX=3803h,AX=3805h
  2989. --------a-103805-----------------------------
  2990. INT 10 - Tinytalk Personal v1.10 - GET ???
  2991.     AX = 3805h
  2992. Return: AL = ???
  2993. SeeAlso: AX=3800h,AX=3803h,AX=3804h
  2994. --------a-103806-----------------------------
  2995. INT 10 - Tinytalk Personal v1.10 - ???
  2996.     AX = 3806h
  2997.     ES:DX -> ASCIZ ???
  2998. Return: ???
  2999. SeeAlso: AX=3800h
  3000. --------a-1039-------------------------------
  3001. INT 10 - Tinytalk Personal v1.10 - ???
  3002.     AH = 39h
  3003. Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
  3004. Note:    this function was a NOP in TTDEMO.EXE, but may be implemented in other
  3005.       variants of Tinytalk
  3006. --------V-1040-------------------------------
  3007. INT 10 - VIDEO - SET GRAPHICS MODE (Hercules GRAFIX)
  3008.     AH = 40h
  3009. Desc:    switch the Hercules Graphics Card into graphics mode (720x348)
  3010. SeeAlso: AH=00h,AH=41h
  3011. Index:    video modes
  3012. --------V-1041-------------------------------
  3013. INT 10 - VIDEO - SET TEXT MODE (Hercules GRAFIX)
  3014.     AH = 41h
  3015. Desc:    switch the Hercules Graphics Card into text mode
  3016. SeeAlso: AH=00h,AH=40h
  3017. Index:    video modes
  3018. --------V-1042-------------------------------
  3019. INT 10 - VIDEO - CLEAR CURRENT PAGE (Hercules GRAFIX)
  3020.     AH = 42h
  3021. SeeAlso: AH=45h
  3022. --------V-1043-------------------------------
  3023. INT 10 - VIDEO - SELECT DRAWING PAGE (Hercules GRAFIX)
  3024.     AH = 43h
  3025.     AL = page number (0,1)
  3026. Desc:    specify which of the two pages of video memory is to be used for
  3027.       output
  3028. SeeAlso: AH=05h,AH=44h,AH=45h
  3029. --------V-1044-------------------------------
  3030. INT 10 - VIDEO - SELECT DRAWING FUNCTION (Hercules GRAFIX)
  3031.     AH = 44h
  3032.     AL = drawing function
  3033.         00h clear pixels
  3034.         01h set pixels
  3035.         02h invert pixels
  3036. Desc:    specify how graphics output will change the display
  3037. SeeAlso: AH=45h,AH=46h,AH=4Ch,AH=4Dh
  3038. --------V-1045-------------------------------
  3039. INT 10 - VIDEO - SELECT PAGE TO DISPLAY (Hercules GRAFIX)
  3040.     AH = 45h
  3041.     AL = page number (0,1)
  3042. Desc:    specify which of the two pages of video memory is visible on screen
  3043. SeeAlso: AH=05h,AH=42h,AH=43h
  3044. --------V-1046-------------------------------
  3045. INT 10 - VIDEO - DRAW ONE PIXEL (Hercules GRAFIX)
  3046.     AH = 46h
  3047.     DI = x (0-720)
  3048.     BP = y (0-347)
  3049. Note:    function 44h determines operation and function 43h which page to use
  3050. SeeAlso: AH=0Ch,AH=47h,AH=49h,AH=4Ch,AH=4Dh
  3051. --------V-1047-------------------------------
  3052. INT 10 - VIDEO - FIND PIXEL VALUE (Hercules GRAFIX)
  3053.     AH = 47h
  3054.     DI = x (0-720)
  3055.     BP = y (0-347)
  3056. Return: AL = 00h pixel clear
  3057.     AL = 01h pixel set
  3058. Note:    function 43h specifies which page is used
  3059. SeeAlso: AH=0Dh,AH=46h
  3060. --------V-1048-------------------------------
  3061. INT 10 - VIDEO - MOVE TO POINT (Hercules GRAFIX)
  3062.     AH = 48h
  3063.     DI = x (0-720)
  3064.     BP = y (0-347)
  3065. Desc:    specify the location from which to start the next graphics output
  3066. SeeAlso: AH=49h
  3067. --------V-1049-------------------------------
  3068. INT 10 - VIDEO - DRAW TO POINT (Hercules GRAFIX)
  3069.     AH = 49h
  3070.     DI = x (0-720)
  3071.     BP = y (0-347)
  3072. Note:    function 48h or 49h specify first point, 44h operation and 43h page to
  3073.       use
  3074. SeeAlso: AH=43h,AH=44h,AH=48h,AH=4Ch,AH=4Dh
  3075. --------V-104A-------------------------------
  3076. INT 10 - VIDEO - BLOCK FILL (Hercules GRAFIX)
  3077.     AH = 4Ah
  3078.     DI = x coordinate of lower left corner
  3079.     BP = y coordinate of lower left corner
  3080.     BX = height in pixels
  3081.     CX = width in pixels
  3082. Desc:    draw a solid rectangle of the specified size at the given location
  3083. SeeAlso: AH=4Eh
  3084. --------V-104B-------------------------------
  3085. INT 10 - VIDEO - DISPLAY CHARACTER (Hercules GRAFIX)
  3086.     AH = 4Bh
  3087.     AL = character to display
  3088.     DI = x (0-720)
  3089.     BP = y (0-347)
  3090. Note:    unlike the other BIOS character functions character position is
  3091.       specified in pixels rather than rows and columns
  3092. SeeAlso: AH=09h,AH=0Ah
  3093. ----------104B-------------------------------
  3094. INT 10 - FRIEZE - API
  3095.     AH = 4Bh
  3096.     CL = function
  3097.         00h (v6.x-) print window
  3098.         AL = mode
  3099.             00h character
  3100.             01h normal
  3101.             02h sideways
  3102.         01h load window
  3103.         ES:BX -> ASCIZ filename from which to read
  3104.         02h save window
  3105.         ES:BX -> ASCIZ filename to which to write
  3106.         03h set print width
  3107.         AL = width in 1/4 inches
  3108.         04h set print height
  3109.         AL = height in 1/4 inches
  3110.         05h reserved
  3111.         06h set left margin
  3112.         AL = printout margin in 1/4 inches
  3113.         07h set window size
  3114.         ES:BX -> four-WORD structure with Xmin, Ymin, Xmax, Ymax
  3115.         08h reserved
  3116.         09h set patterns
  3117.         ES:BX -> 16-BYTE vector of screen->printer color correspondnces
  3118.         0Ah get patterns
  3119.         ES:BX -> 16-BYTE buffer for color correspondences
  3120.         0Bh set mode
  3121.         AL = mode
  3122.         0Ch (v7.41) ???
  3123.         AL = ???
  3124.             00h ??? (calls original INT 05)
  3125.             else ???
  3126.         0Dh (v7.41) ???
  3127.         AL = ???
  3128.             00h ??? (calls original INT 05)
  3129.             else ???
  3130.         0Eh (v7.41) ???
  3131.         ???
  3132.         0Fh get window
  3133.         ES:BX -> four-WORD buffer for Xmin, Ymin, Xmax, Ymax
  3134.         10h set print options
  3135.         ES:BX -> printer options in same format as FRIEZE cmdline
  3136.         11h initialize
  3137.         ES:BX -> three-WORD array from CARDS.DAT for HRes, VRes, code
  3138.         12h (v7.41) ???
  3139.         ???
  3140.         13h (v7.41) ???
  3141.         ???
  3142.         14h get version
  3143.         Return: AH = major version (00h if FRIEZE version before 7)
  3144.             AL = minor version
  3145.         15h set parameters
  3146.         ES:BX -> parameter table (see below)
  3147.         16h get parameters
  3148.         ES:BX -> buffer for parameter table (see below)
  3149.         17h get printer resolution
  3150.         ES:BX -> 12-WORD table for six horizontal/vertical resol pairs
  3151.         18h (v8.0 only) reserved
  3152.         50h (v7.41) get ???
  3153.         Return: AX = ???
  3154.         51h (v7.41) get ???
  3155.         Return: ES = ??? (seen 2348h)
  3156.             AX = ??? (seen 8432h)
  3157. Return: AX = status (see below)
  3158. SeeAlso: AH=0Fh/SI=F123h
  3159.  
  3160. Values for status:
  3161.  00h    successful
  3162.  01h    user aborted printout with ESC
  3163.  02h    reserved
  3164.  03h    file read error
  3165.  04h    file write error or printer error
  3166.  05h    file not found
  3167.  06h    invalid header (not an image or wrong screen mode) or can't create file
  3168.  07h    file close error
  3169.  08h    disk error
  3170.  09h    (v7.0+) printer error
  3171.  0Ah    invalid function
  3172.  0Bh    (v7.0+) can't create file
  3173.  0Ch    (v7.0+) wrong video mode
  3174.  
  3175. Format of parameter table:
  3176. Offset    Size    Description
  3177.  00h    WORD    top margin (1/100 inch)
  3178.  02h    WORD    left margin (1/100 inch)
  3179.  04h    WORD    horizontal size (1/100 inch)
  3180.  06h    WORD    vertical size (1/100 inch)
  3181.  08h    WORD    quality/draft mode
  3182.         00h draft mode
  3183.         01h quality mode
  3184.         02h use horizontal/vertical resolution for output resolution
  3185.  0Ah    WORD    printer horizontal resolution (dots per inch)
  3186.  0Ch    WORD    printer vertical resolution (dots per inch)
  3187.  0Eh    WORD    reserved (FFFFh)
  3188. Note:    any field which should remain unchanged may be filled with FFFFh
  3189. --------V-104C-------------------------------
  3190. INT 10 - VIDEO - DRAW ARC (Hercules GRAFIX)
  3191.     AH = 4Ch
  3192.     AL = quadrant (1 = upper right, 2 = upper left, etc)
  3193.     DI = x coordinate of center
  3194.     BP = y coordinate of center
  3195.     BX = radius
  3196. SeeAlso: AH=49h,AH=4Dh
  3197. --------V-104D-------------------------------
  3198. INT 10 - VIDEO - DRAW CIRCLE (Hercules GRAFIX)
  3199.     AH = 4Dh
  3200.     DI = x of center
  3201.     BP = y of center
  3202.     BX = radius
  3203. SeeAlso: AH=49h,AH=4Ch
  3204. --------V-104E-------------------------------
  3205. INT 10 - VIDEO - FILL AREA (Hercules GRAFIX)
  3206.     AH = 4Eh
  3207.     DI = x coordinate of an interior point
  3208.     BP = y coordinate of an interior point
  3209. Desc:    fill a convex polygonal area bounded by a contiguous line of the
  3210.       opposite color with the border color
  3211. Note:    the first fill makes the figure solid, the second erases it
  3212. SeeAlso: AH=4Ah
  3213. --------V-104F00-----------------------------
  3214. INT 10 - VESA SuperVGA BIOS - GET SuperVGA INFORMATION
  3215.     AX = 4F00h
  3216.     ES:DI -> 256-byte buffer for SuperVGA information (see below)
  3217. Return: AL = 4Fh function supported
  3218.     AH = status
  3219.         00h successful
  3220.         ES:DI buffer filled
  3221.         01h failed
  3222. Desc:    determine whether VESA BIOS extensions are present and the capabilities
  3223.       supported by the display adapter
  3224. SeeAlso: AX=4F01h,AX=7F00h
  3225. Index:    installation check;VESA
  3226.  
  3227. Format of SuperVGA information:
  3228. Offset    Size    Description
  3229.  00h  4 BYTEs    signature ('VESA')
  3230.  04h    WORD    VESA version number
  3231.  06h    DWORD    pointer to OEM name
  3232.         "761295520" for ATI
  3233.  0Ah  4 BYTEs    capabilities
  3234.  0Eh    DWORD    pointer to list of supported VESA and OEM video modes
  3235.         (list of words terminated with FFFFh)
  3236.  12h    WORD    total amount of video memory in 64K blocks
  3237.  14h 236 BYTEs    reserved
  3238. Notes:    the list of supported video modes is stored in the reserved portion of
  3239.       the SuperVGA information record by some implementations, and it may
  3240.       thus be necessary to either copy the mode list or use a different
  3241.       buffer for all subsequent VESA calls
  3242.     the 1.1 VESA document specifies 242 reserved bytes at the end, so the
  3243.       buffer should be 262 bytes to ensure that it is not overrun
  3244. --------V-104F01-----------------------------
  3245. INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION
  3246.     AX = 4F01h
  3247.     CX = SuperVGA video mode
  3248.     ES:DI -> 256-byte buffer for mode information (see below)
  3249. Return: AL = 4Fh function supported
  3250.     AH = status
  3251.         00h successful
  3252.         ES:DI buffer filled
  3253.         01h failed
  3254. Desc:    determine the attributes of the specified video mode
  3255. SeeAlso: AX=4F00h,AX=4F02h
  3256.  
  3257. Format of mode information:
  3258. Offset    Size    Description
  3259.  00h    WORD    mode attributes
  3260.         bit 0: mode supported
  3261.         bit 1: optional information available
  3262.         bit 2: BIOS output supported
  3263.         bit 3: set if color, clear if monochrome
  3264.         bit 4: set if graphics mode, clear if text mode
  3265.  02h    BYTE    window A attributes
  3266.         bit 0: exists
  3267.         bit 1: readable
  3268.         bit 2: writable
  3269.         bits 3-7 reserved
  3270.  03h    BYTE    window B attributes (as for window A)
  3271.  04h    WORD    window granularity in KB
  3272.  06h    WORD    window size in KB
  3273.  08h    WORD    start segment of window A
  3274.  0Ah    WORD    start segment of window B
  3275.  0Ch    DWORD    -> FAR window positioning function (equivalent to AX=4F05h)
  3276.  10h    WORD    bytes per scan line
  3277. ---remainder is optional for VESA modes in v1.0/1.1, needed for OEM modes---
  3278.  12h    WORD    width in pixels (graphics) or characters (text)
  3279.  14h    WORD    height in pixels (graphics) or characters (text)
  3280.  16h    BYTE    width of character cell in pixels
  3281.  17h    BYTE    height of character cell in pixels
  3282.  18h    BYTE    number of memory planes
  3283.  19h    BYTE    number of bits per pixel
  3284.  1Ah    BYTE    number of banks
  3285.  1Bh    BYTE    memory model type (see below)
  3286.  1Ch    BYTE    size of bank in KB
  3287.  1Dh    BYTE    number of image pages
  3288.  1Eh    BYTE    reserved (0)
  3289. ---VBE v1.2+---
  3290.  1Fh    BYTE    red mask size
  3291.  20h    BYTE    red field position
  3292.  21h    BYTE    green mask size
  3293.  22h    BYTE    green field size
  3294.  23h    BYTE    blue mask size
  3295.  24h    BYTE    blue field size
  3296.  25h    BYTE    reserved mask size
  3297.  26h    BYTE    reserved mask position
  3298.  27h    BYTE    direct color mode info
  3299.  28h 216 BYTEs    reserved (0)
  3300.  
  3301. Values for memory model type:
  3302.  00h    text
  3303.  01h    CGA graphics
  3304.  02h    HGC graphics
  3305.  03h    16-color (EGA) graphics
  3306.  04h    packed pixel graphics
  3307.  05h    "sequ 256" (non-chain 4) graphics
  3308.  06h    direct color (HiColor, 24-bit color)
  3309.  07h    YUV (luminance-chrominance, also called YIQ)
  3310.  08h-0Fh reserved for VESA
  3311.  10h-FFh OEM memory models
  3312. --------V-104F02-----------------------------
  3313. INT 10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE
  3314.     AX = 4F02h
  3315.     BX = mode
  3316.         bit 15 set means don't clear video memory
  3317. Return: AL = 4Fh function supported
  3318.     AH = status
  3319.         00h successful
  3320.         01h failed
  3321. SeeAlso: AX=4F01h,AX=4F03h
  3322.  
  3323. Values for VESA video mode:
  3324.  00h-FFh OEM video modes (see AH=00h)
  3325.  100h    640x400x256
  3326.  101h    640x480x256
  3327.  102h    800x600x16
  3328.  103h    800x600x256
  3329.  104h    1024x768x16
  3330.  105h    1024x768x256
  3331.  106h    1280x1024x16
  3332.  107h    1280x1024x256
  3333.  108h    80x60 text
  3334.  109h    132x25 text
  3335.  10Ah    132x43 text
  3336.  10Bh    132x50 text
  3337.  10Ch    132x60 text
  3338. ---VBE v1.2---
  3339.  10Dh    320x200x32K
  3340.  10Eh    320x200x64K
  3341.  10Fh    320x200x16M
  3342.  110h    640x480x32K
  3343.  111h    640x480x64K
  3344.  112h    640x480x16M
  3345.  113h    800x600x32K
  3346.  114h    800x600x64K
  3347.  115h    800x600x16M
  3348.  116h    1024x768x32K
  3349.  117h    1024x768x64K
  3350.  118h    1024x768x16M
  3351.  119h    1280x1024x32K
  3352.  11Ah    1280x1024x64K
  3353.  11Bh    1280x1024x16M
  3354. Index:    video modes
  3355.  
  3356. Values for S3 OEM video mode:
  3357.  201h    640x480x256
  3358.  202h    800x600x16
  3359.  203h    800x600x256
  3360.  204h    1024x768x16
  3361.  205h    1024x768x256
  3362.  206h    1280x960x16
  3363.  208h    1280x1024x16
  3364.  211h    640x480x64K (Diamond Stealth 24X)
  3365.  212h    640x480x16M (Diamond Stealth 24X)
  3366.  301h    640x480x32K
  3367. Index:    video modes
  3368. --------V-104F03-----------------------------
  3369. INT 10 - VESA SuperVGA BIOS - GET CURRENT VIDEO MODE
  3370.     AX = 4F03h
  3371. Return: AL = 4Fh function supported
  3372.     AH = status
  3373.         00h successful
  3374.         01h failed
  3375.     BX = video mode (see AX=4F02h)
  3376. SeeAlso: AX=4F02h
  3377. --------V-104F04-----------------------------
  3378. INT 10 - VESA SuperVGA BIOS - SAVE/RESTORE SuperVGA VIDEO STATE
  3379.     AX = 4F04h
  3380.     DL = subfunction
  3381.         00h get state buffer size
  3382.         Return: BX = number of 64-byte blocks needed
  3383.         01h save video states
  3384.         ES:BX -> buffer
  3385.         02h restore video states
  3386.         ES:BX -> buffer
  3387.     CX = flags for states to save/restore
  3388.         bit 0: video hardware state
  3389.         bit 1: video BIOS data state
  3390.         bit 2: video DAC state
  3391.         bit 3: SuperVGA state
  3392. Return: AL = 4Fh function supported
  3393.     AH = status
  3394.         00h successful
  3395.         01h failed
  3396. --------V-104F05-----------------------------
  3397. INT 10 - VESA SuperVGA BIOS - CPU VIDEO MEMORY CONTROL
  3398.     AX = 4F05h
  3399.     BH = subfunction
  3400.         00h select video memory window
  3401.         DX = window address in video memory (in granularity units)
  3402.         01h get video memory window
  3403.         Return: DX = window address in video memory (in gran. units)
  3404.     BL = window number
  3405.         00h window A
  3406.         01h window B
  3407. Return: AL = 4Fh function supported
  3408.     AH = status
  3409.         00h successful
  3410.         01h failed
  3411. SeeAlso: AX=4F01h,AX=4F06h,AX=4F07h,AX=7000h/BX=0004h
  3412. --------V-104F06-----------------------------
  3413. INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET LOGICAL SCAN LINE LENGTH
  3414.     AX = 4F06h
  3415.     BL = function
  3416.         00h set scan line length
  3417.         CX = desired width in pixels
  3418.         01h get scan line length
  3419. Return: AL = 4Fh if function supported
  3420.     AH = status
  3421.         00h successful
  3422.         01h failed
  3423.     BX = bytes per scan line
  3424.     CX = number of pixels per scan line
  3425.     DX = maximum number of scan lines
  3426. Notes:    if the desired width is not achievable, the next larger width will be
  3427.       set
  3428.     the scan line may be wider than the visible area of the screen
  3429.     this function is valid in text modes, provided that values are
  3430.       multiplied by the character cell width/height
  3431. SeeAlso: AX=4F01h,AX=4F05h,AX=4F07h
  3432. --------V-104F07BH00-------------------------
  3433. INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET DISPLAY START
  3434.     AX = 4F07h
  3435.     BH = 00h (reserved)
  3436.     BL = function
  3437.         00h set display start
  3438.         CX = leftmost displayed pixel in scan line
  3439.         DX = first displayed scan line
  3440.         01h get display start
  3441.         Return: BH = 00h
  3442.             CX = leftmost displayed pixel in scan line
  3443.             DX = first displayed scan line
  3444. Return: AL = 4Fh if function supported
  3445.     AH = status
  3446.         00h successful
  3447.         01h failed
  3448. Note:    this function is valid in text modes, provided that values are
  3449.       multiplied by the character cell width/height
  3450. SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h
  3451. --------V-104F08-----------------------------
  3452. INT 10 - VESA SuperVGA BIOS v1.2+ - GET/SET DAC PALETTE CONTROL
  3453.     AX = 4F08h
  3454.     BL = function
  3455.         00h set DAC palette width
  3456.         BH = desired number of bits per primary color
  3457.         01h get DAC palette width
  3458. Return: AL = 4Fh if function supported
  3459.     AH = status
  3460.     BH = current number of bits per primary (06h = standard VGA)
  3461. --------V-104FFF-----------------------------
  3462. INT 10 - VESA SuperVGA BIOS - Everex - TURN VESA ON/OFF
  3463.     AX = 4FFFh
  3464.     DL = new state (00h off, 01h on)
  3465. Return: AX = 0000h if successful
  3466. --------V-104FFF-----------------------------
  3467. INT 10 - Diamond Stealth 24 - SET/RESET DUAL DISPLAY MODE
  3468.     AX = 4FFFh
  3469.     BX = dual display mode
  3470.         00h reset
  3471.         01h set dual display, 32KB VGA test
  3472.         02h set dual display, 64KB VGA test
  3473. Return: AX = 4F00h if successful
  3474.         BX = number of scanlines off screen for test mode
  3475. --------U-1050-------------------------------
  3476. INT 10 - SCROLOCK.COM - INSTALLATION CHECK
  3477.     AH = 50h
  3478. Return: BX = 1954h if installed
  3479.         AL = 00h if inactive, nonzero if active
  3480. Program: SCROLOCK is a utility supplied with System Enhancement Associates' ARC
  3481. SeeAlso: AH=51h
  3482. --------J-105000-----------------------------
  3483. INT 10 - VIDEO - AX PC - SET SCREEN COUNTRY CODE
  3484.     AX = 5000h
  3485.     BX = country code
  3486.         0001h USA (English), 0051h Japan
  3487. Return: AL = status
  3488.         00h successful
  3489.         01h bad country code
  3490.         02h other error
  3491. SeeAlso: AX=5001h,INT 16/AX=5000h
  3492. --------J-105001-----------------------------
  3493. INT 10 - VIDEO - AX PC - GET SCREEN COUNTRY CODE
  3494.     AX = 5001h
  3495. Return: AL = status
  3496.         00h successful
  3497.         BX = country code
  3498.         02h error
  3499. SeeAlso: AH=00h,AX=5000h,INT 16/AX=5001h,INT 21/AH=38h
  3500. --------V-105049-----------------------------
  3501. INT 10 - VIDEO - SCREENR v1.55+ - API
  3502.     AX = 5049h ('PI')
  3503.     BX = function
  3504.         0000h installation check
  3505.         0001h lock mode
  3506.         0002h unlock mode
  3507.         0003h lock palette
  3508.         0004h unlock palette
  3509. Return: AX = 0000h if installed
  3510.         BX = TSR version (BH=major,BL=minor)
  3511.         CL = mode locking status
  3512.         00h mode not locked
  3513.         01h mode locked: INT 10/AH=00h disabled
  3514.         CH = palette locking status
  3515.         00h palette not locked
  3516.         01h palette locked, the following functions are disabled:
  3517.             AX=1000h, AX=1001h, AX=1002h, AX=1010h, AX=1012h
  3518. Program: SCREENR is a TSR supplied with Patrick Ibbetson's SCREEN display
  3519.       utility.
  3520. Index:    installation check;SCREENR
  3521. --------U-1051-------------------------------
  3522. INT 10 - SCROLOCK.COM - ENABLE/DISABLE
  3523.     AH = 51h
  3524.     AL = state
  3525.         00h disable
  3526.         nonzero enable
  3527. Program: SCROLOCK is a utility supplied with System Enhancement Associates' ARC
  3528. SeeAlso: AH=50h"SCROLOCK"
  3529. --------J-105100-----------------------------
  3530. INT 10 - VIDEO - AX PC - REGISTER EXTERNAL CHARACTER
  3531.     AX = 5100h
  3532.     BH = character width in bits (10h)
  3533.     BL = character height (10h)
  3534.     DX = character code (DH = F0h-F3h, DL=40h-7Eh,80h-FCh)
  3535.     ES:BP -> character bitmap
  3536. Return: AL = status (00h successful, 01h failed)
  3537. SeeAlso: AX=5101h,INT 1F
  3538. --------J-105101-----------------------------
  3539. INT 10 - VIDEO - AX PC - READ CHARACTER
  3540.     AX = 5101h
  3541.     BH = character width in bits
  3542.     BL = character height
  3543.     DX = character code (DH = 00h if 8-bit character)
  3544.     ES:BP -> buffer for character bitmap
  3545. Return: AL = status (00h successful, 01h failed)
  3546. SeeAlso: AH=09h,AX=5100h
  3547. --------J-105200-----------------------------
  3548. INT 10 - VIDEO - AX PC - SET VIRTUAL TEXT RAM BUFFER
  3549.     AX = 5200h
  3550.     BX = segment of buffer
  3551. SeeAlso: AX=5201h
  3552. --------J-105201-----------------------------
  3553. INT 10 - VIDEO - AX PC - GET VIRTUAL TEXT RAM BUFFER
  3554.     AX = 5201h
  3555. Return: BX = segment of buffer or 0000h if failed
  3556. SeeAlso: AX=8300h,AH=FEh
  3557. ----------1053-------------------------------
  3558. INT 10 - Show Partner F/X v3.6 - START PRESENTATION
  3559.     AH = 53h
  3560.     DS:DX -> ASCIZ name of presentation file (no path, extension forced to
  3561.         .PR2)
  3562. Return: ???
  3563. SeeAlso: AH=55h
  3564. ----------1055-------------------------------
  3565. INT 10 - Show Partner F/X v3.6 - UNINSTALL
  3566.     AH = 55h
  3567. Return: FXSHOW.EXE removed from memory
  3568. SeeAlso: AH=53h
  3569. --------V-105555-----------------------------
  3570. INT 10 - VIDEO - ATI EGA/VGA Wonder Super Switch - INSTALLATION CHECK
  3571.     AX = 5555h
  3572. Return: AX = AAAAh    if installed
  3573.     BX:CX -> ??? routine in SMS.COM resident portion
  3574.           -> data area in VCONFIG
  3575. Program: Super Switch (SMS.COM) is a video mode switch program supplied with
  3576.       ATI EGA Wonder. It also maps video mode 08h to 27h or 23h.
  3577. SeeAlso: INT 10/AH=00h,INT 2F/AX=6400h
  3578. Index:    screen saver;ATI Wonder SMS.COM
  3579.  
  3580. Format of data area:
  3581. Offset    Size    Description
  3582.  00h    DWORD    original INT 09 vector
  3583.  04h    DWORD    original INT 10 vector
  3584.  08h    DWORD    original INT 1C vector
  3585.  0Ch    WORD    screen saver state, 0=off, 1=on
  3586.  0Eh    WORD    blanking interval in clock ticks
  3587. --------V-105F00-----------------------------
  3588. INT 10 - Chips & Technologies Extended BIOS - RETURN 82C45X CHIP INFORMATION
  3589.     AX = 5F00h
  3590. Return: AL = 5Fh function supported
  3591.         BL = chip type (see below)
  3592.         BH = video memory size (00h 256KB, 01h 512KB, 02h 1MB)
  3593.         CX = miscellaneous information (see below)
  3594. SeeAlso: AX=5F01h
  3595.  
  3596. Bitfields for chip type:
  3597.  bits 7-4 chip type
  3598.     0000: 82c451
  3599.     0001: 82c452
  3600.     0010: 82c455
  3601.     0011: 82c453
  3602.     0101: 82c456
  3603.     0110: 82c457
  3604.     0111: F65520
  3605.     1000: F65530
  3606.  bits 3-0 revision number
  3607.  
  3608. Bitfields for miscellaneous information:
  3609.  bit 0    DAC size (0=6-bit, 1=8-bit)
  3610.  bit 1    system type (0=PC/AT, 1=PS/2)
  3611.  bit 2    extended text modes supported by BIOS
  3612.  bit 3    reserved
  3613.  bit 4    extended graphics modes supported by BIOS
  3614.  bit 5    reserved
  3615.  bit 6    BIOS supports graphics cursor
  3616.  bit 7    BIOS supports anti-aliased font
  3617.  bit 8    BIOS supports pre-programmed emulation
  3618.  bit 9    BIOS supports auto emulation
  3619.  bit 10    BIOS supports variable mode set at cold boot
  3620.  bit 11    BIOS supports variable mode set on warm boot
  3621.  bit 12    BIOS supports emulation mode set at cold boot
  3622.  bit 13    BIOS supports emulation mode set on warm boot
  3623.  bits 14-15 reserved
  3624. --------V-105F00-----------------------------
  3625. INT 10 - VIDEO - Realtek RTVGA - RETURN CHIP VERSION
  3626.     AX = 5F00h
  3627. Return: AH = 00h, if successful
  3628.     AL = chip version (the same value that VTEST.EXE reads)
  3629.         00h RTG3103???
  3630.         01h RTG31030/RTG3105
  3631.         02h RTG3106???
  3632.         3Fh non-Realtek chip
  3633. BUG:    in v3.C10, AX=5F00h on return due to improper stack restoration code
  3634. SeeAlso: AX=5F01h"RTVGA"
  3635. --------V-105F01-----------------------------
  3636. INT 10 - Chips & Technologies Extended BIOS - SET PREPROGRAMMED EMULATION
  3637.     AX = 5F01h
  3638.     BL = emulation type (see below)
  3639. Return: AL = 5Fh if function supported
  3640.         AH = status
  3641.         00h unsuccessful
  3642.         01h successful
  3643. SeeAlso: AX=5F00h,AX=5F02h,AH=FFh"Oak"
  3644.  
  3645. Values for emulation type:
  3646.  00h,01h reserved
  3647.  02h    CGA
  3648.  03h    MDA
  3649.  04h    Hercules
  3650.  05h    EGA
  3651.  06h    VGA
  3652. --------V-105F01-----------------------------
  3653. INT 10 - VIDEO - Realtek RTVGA - WRITE RTVGA BIOS STRING TO DESTINATION
  3654.     AX = 5F01h
  3655.     ES:DI -> zero-filled buffer for BIOS ID string
  3656. Return: AH = 00h if successful
  3657.     ES:DI -> ASCII signature "REALTEK VGA BIOS Version 3C.10"
  3658. BUG:    in v3.C10, AX=5F01h on return due to improper stack restoration code
  3659. SeeAlso: AX=5F00h"RTVGA",AX=5F02h"RTVGA"
  3660. --------V-105F02-----------------------------
  3661. INT 10 - Chips & Technologies Extended BIOS - AUTO EMULATION CONTROL
  3662.     AX = 5F02h
  3663.     BL = new state of autmatic emulation (00h enabled, 01h disabled)
  3664. Return: AL = 5Fh if function supported
  3665.         AH = status
  3666.         00h unsuccessful
  3667.         01h successful
  3668. SeeAlso: AX=5F01h,AX=5F03h
  3669. --------V-105F02-----------------------------
  3670. INT 10 - VIDEO - Realtek RTVGA - RETURN RTVGA ON-BOARD MEMORY SIZE
  3671.     AX = 5F02h
  3672. Return: AH = 00h, if successful
  3673.     AL = on-board memory size
  3674.          (00h = 256K, 01h = 512K, 02h = 768K, 03h = 1024K)
  3675. BUG:    in v3.C10, AX=5F02h on return due to improper stack restoration code
  3676. SeeAlso: AX=5F01h"RTVGA",AX=5F03h"RTVGA"
  3677. --------V-105F03-----------------------------
  3678. INT 10 - VIDEO - Realtek RTVGA - SET ???
  3679.     AX = 5F03h
  3680.     BL = 0-3 (???)
  3681. Return: AH = 00h if successful
  3682. BUG:    in v3.C10, AX=5F03h on return due to improper stack restoration code
  3683. SeeAlso: AX=5F02h"RTVGA"
  3684. --------V-105F03BL00-------------------------
  3685. INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON VIDEO CONDITIONS
  3686.     AX = 5F03h
  3687.     BL = configuration
  3688.         00h power-up display mode
  3689.         CL = display mode
  3690.         CH = mode
  3691.             bits 1-0 scanlines
  3692.             00: 200
  3693.             01: 350
  3694.             10: 400
  3695.             bit 7 persistence (0 reset on next boot, 1 until changed)
  3696.         01h power-up emulation mode
  3697.         CL = emulation mode (see AX=5F01h"Chips")
  3698.         CH = permanence (00h reset after next boot, 01h until changed)
  3699. Return: AL = 5Fh if function supported
  3700.         AH = status
  3701.         00h unsuccessful
  3702.         01h successful
  3703. SeeAlso: AX=5F02h,AX=5F03h/BL=01h,AX=5F90h
  3704. --------V-105F03BL01-------------------------
  3705. INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON EMULATION MODE
  3706.     AX = 5F03h
  3707.     BL = 01h
  3708.     CL = emulation mode
  3709.     CH = mode
  3710.         bit 7 persistence (0 reset on next boot, 1 until changed)
  3711. Return: AL = 5Fh if function supported
  3712.         AH = status
  3713.         00h unsuccessful
  3714.         01h successful
  3715. SeeAlso: AX=5F02h,AX=5F03h/BL=00h,AX=5F90h
  3716. --------V-105F-------------------------------
  3717. INT 10 - Chips & Technologies Extended BIOS - SAVE/RESTORE SUPERVGA STATE
  3718.     AH = 5Fh
  3719.     AL = subfunction
  3720.         90h determine size of save buffer
  3721.         91h save state
  3722.         92h restore state
  3723.     CX = state mask (see below)
  3724.     ES:BX -> save buffer (subfunctions 91h,92h only)
  3725. Return: AL = 5Fh if function supported
  3726.         ---subfunction 90h---
  3727.         BX = number of 64-byte blocks required
  3728.         ---subfunction 92h---
  3729.         buffer at ES:BX filled
  3730. SeeAlso: AH=1Ch,AX=5F03h
  3731.  
  3732. Bitfields for state mask:
  3733.  bit 0    video hardware
  3734.  bit 1    BIOS data state
  3735.  bit 2    DAC state
  3736.  bit 15 type (0 all state info, 1 SuperVGA state only)
  3737. --------V-106A00BX0000-----------------------
  3738. INT 10 - Direct Graphics Interface Standard (DGIS) - INQUIRE AVAILABLE DEVICES
  3739.     AX = 6A00h
  3740.     BX = 0000h
  3741.     CX = 0000h
  3742.     DX = buffer length (may be 0)
  3743.     ES:DI -> buffer
  3744. Return: BX = number of bytes stored in buffer
  3745.     CX = bytes required for all descriptions (0 if no DGIS)
  3746. Note:    buffer contains descriptions and addresses of DGIS-compatible
  3747.       display(s) and printer(s)
  3748. SeeAlso: AX=6A02h
  3749. --------V-106A01CX0000-----------------------
  3750. INT 10 - Direct Graphics Interface Standard (DGIS) - REDIRECT CHARACTER OUTPUT
  3751.     AX = 6A01h
  3752.     CX = 0000h
  3753.     ES:DI = address of device to send INT 10 output to
  3754. Return: CX = 0000h  output could not be redirected
  3755.          else INT 10h output now routed to requested display
  3756. SeeAlso: AX=6A02h
  3757. --------V-106A02-----------------------------
  3758. INT 10 - DGIS - INQUIRE INT 10 OUTPUT DEVICE
  3759.     AX = 6A02h
  3760.     ES:DI = 0000h:0000h
  3761. Return: ES:DI = 0000h:0000h  if current display is non-DGIS
  3762.         else address of the current DGIS INT 10 display
  3763. SeeAlso: AX=6A00h,AX=6A01h
  3764. --------V-106E00-----------------------------
  3765. INT 10 - Paradise VGA internal - GET ???
  3766.     AX = 6E00h
  3767. Return: AH = ??? (depends on serial number)
  3768.     AL = ???
  3769.     BX = ???
  3770.     CL = ???
  3771.     CH = ???
  3772.     DX = ???
  3773. SeeAlso: AX=6E04h,AX=6E05h
  3774. --------V-106E04-----------------------------
  3775. INT 10 - Paradise VGA internal - GET SCREEN SIZE AND ???
  3776.     AX = 6E04h
  3777. Return: BX = screen width (columns)
  3778.     CX = screen height (lines)
  3779.     AH = ??? (05h or FFh)
  3780.     AL = ??? (04h or video mode)
  3781. SeeAlso: AX=6E00h,AX=6E05h
  3782. --------V-106E05-----------------------------
  3783. INT 10 - Paradise VGA internal - SET MODE
  3784.     AX = 6E05h
  3785.     BL = mode
  3786. Note:    like AH=00h, AL=BL.
  3787. SeeAlso: AH=00h,AX=6E00h,AX=6E04h,AX=6F05h
  3788. --------V-106F00BX0000-----------------------
  3789. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Ext BIOS - INSTALLATION CHECK
  3790.     AX = 6F00h
  3791.     BX = 0000h
  3792. Return: BX = 5637h ('V7') indicates Video7 VGA/VEGA VGA extensions are present
  3793.     BX = 4850h ('HP') indicates HP Extended BIOS video functions present
  3794. SeeAlso: AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
  3795. --------V-106F01-----------------------------
  3796. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Ext BIOS - GET MONITOR INFO
  3797.     AX = 6F01h
  3798. Return: AL = monitor type code (HP,VEGA VGA only) (see below)
  3799.     AH = status register information
  3800.          bit  0 = display enable
  3801.             0 = display enabled
  3802.             1 = vertical or horizontal retrace in progress
  3803.          bit  1 = light pen flip flop set
  3804.          bit  2 = light pen switch activated
  3805.          bit  3 = vertical sync
  3806.          bit  4 = monitor resolution
  3807.             0 = high resolution (>200 lines)
  3808.             1 = low resolution (<=200 lines)
  3809.          bit  5 = display type
  3810.             0 = color
  3811.             1 = monochrome
  3812.          bits6,7= diagnostic bits
  3813.     CL = current value of Extended Control register (HP Ext BIOS, and only
  3814.         if AL=41h)
  3815. Note:    bits 0-3 are the same as the EGA/VGA status register bits 0-3
  3816.  
  3817. Values for monitor type code (HP Extended BIOS):
  3818.  00h    non-HP card with ROM and possibly its own INT 10h driver
  3819.  41h    MultiMode video display adapter
  3820.  42h-44h reserved
  3821.  45h    industry standard monochrome display adapter
  3822.  46h    industry standard color display adapter
  3823.  51h    reserved
  3824. --------V-106F02-----------------------------
  3825. INT 10 - VIDEO - HP Vectra EXTENDED BIOS - SET MONITOR INFO
  3826.     AX = 6F02h
  3827.     BL = new value for extended control register (see below)
  3828. Return: nothing
  3829. Notes:    this function is only valid when an HP MultiMode Video Display Adapter
  3830.       is installed
  3831.     the Extended Control register is at I/O address 3DDh
  3832. SeeAlso: AX=6F01h,AX=6F03h
  3833.  
  3834. Bitfields for extended control register:
  3835.  bit 0    screen resolution (0 = 200 lines, 1 = 400 lines)
  3836.  bit 1    underline enable (if set, 'blue' bit of fg color = underl)
  3837.  bit 2    font (0 = Standard-8, 1 = HP-Roman-8)
  3838.  bit 3    memory disabled for CPU access
  3839.  bit 4    allow access to full 32K memory instead of wrapping at 16K
  3840.  bit 5    select second 16K page instead of first
  3841.  bits 6,7 unused
  3842. --------V-106F03-----------------------------
  3843. INT 10 - VIDEO - HP Vectra EXTENDED BIOS - MODIFY MONITOR INFO
  3844.     AX = 6F03h
  3845.     BH = exclude mask (set bits are not modified)
  3846.     BL = new values for bits indicated by BH (see AX=6F02h)
  3847. Return: nothing
  3848. Note:    this function is only valid when an HP MultiMode Video Display Adapter
  3849.       is installed
  3850. SeeAlso: AX=6F01h,AX=6F02h
  3851. --------V-106F04-----------------------------
  3852. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Vectra - GET MODE AND SCREEN RESOLUTION
  3853.     AX = 6F04h
  3854. Return: AL = current video mode (see AX=6F05h)
  3855.     BX = horizontal columns (text) or pixels (graphics)
  3856.     CX = vertical columns (text) or pixels (graphics)
  3857. SeeAlso: AX=6F05h
  3858. --------V-106F05-----------------------------
  3859. INT 10 - VIDEO - Video7 VGA, VEGA EXTENDED EGA/VGA - SET VIDEO MODE
  3860.     AX = 6F05h
  3861.     BL = mode (see below)
  3862. Notes:    also supported by the HP Vectra Extended BIOS
  3863.     on the HP Vectra, this function rather than AH=00h must be used to
  3864.       return to an IBM-standard mode after setting an HP-specified mode
  3865.       from 08h to 0Fh.
  3866. SeeAlso: AH=00h,AX=0070h,AX=007Eh,AX=6F04h
  3867.  
  3868. Values for video mode:
  3869.       text/ text pixel     pixel    colors    disp    scrn  system
  3870.       grph resol  box    resoltn        page    addr
  3871.  00h-13h = standard IBM modes (see AH=00h)
  3872.  08h = T   80x27           mono             HP MultiMode Video
  3873.  09h = T   80x27                     HP MultiMode Video
  3874.  0Ah = T   40x27           mono             HP MultiMode Video
  3875.  0Bh = T   40x27                     HP MultiMode Video
  3876.  0Ch = Reserved                         HP MultiMode Video
  3877.  0Dh = G        640x400                 HP MultiMode Video
  3878.  0Eh = G        320x400                 HP MultiMode Video
  3879.  0Fh = G        320x400                 HP MultiMode Video
  3880.  40h = T   80x43  8x8                     Video7/VEGA VGA
  3881.  41h = T  132x25  8x14                     Video7/VEGA VGA
  3882.  42h = T  132x43  8x8                     Video7/VEGA VGA
  3883.  43h = T   80x60  8x8                     Video7/VEGA VGA
  3884.  44h = T  100x60  8x8                     Video7/VEGA VGA
  3885.  45h = T  132x28  8x8                     Video7/VEGA VGA
  3886.  60h = G        752x410      16             Video7 VGA, VEGA VGA
  3887.  61h = G        720x540      16             Video7 VGA, VEGA VGA
  3888.      = G        720x540      16             Northgate, Headland 1024i
  3889.  62h = G        800x600      16             Video7 VGA, VEGA Ext EGA
  3890.      = G        800x600      16             Headland 1024i
  3891.  63h = G           1024x768       2             Video7 VGA
  3892.  64h = G           1024x768       4             Video7 VGA
  3893.  65h = G           1024x768      16             Video7 VGA, VEGA Ext EGA
  3894.      = G           1024x768      16             Headland 1024i
  3895.  66h = G        640x400     256             Video7 VGA, VEGA Ext VGA
  3896.      = G        640x400     256             Northgate, Headland 1024i
  3897.  67h = G        640x480     256             Video7 VGA, VEGA Ext VGA
  3898.      = G        640x480     256             Headland 1024i
  3899.  68h = G        720x540     256             Video7 VGA, VEGA Ext VGA
  3900.      = G        720x540     256             Headland 1024i
  3901.  69h = G        800x600     256             Video7 VGA, VEGA Ext VGA
  3902.      = G        800x600     256             Headland 1024i
  3903.  70h = G        752x410      16gray         Video7 VGA, VEGA VGA
  3904.  71h = G        720x540      16gray         Video7 VGA, VEGA VGA
  3905.  72h = G        800x600      16gray         Video7 VGA
  3906.  73h = G           1024x768       2gray         Video7 VGA
  3907.  74h = G           1024x768       4gray         Video7 VGA
  3908.  75h = G           1024x768      16gray         Video7 VGA
  3909.  76h = G        640x400     256gray         Video7 VGA
  3910.  77h = G        640x480     256gray         Video7 VGA
  3911.  78h = G        720x540     256gray         Video7 VGA
  3912.  79h = G        800x600     256gray         (future)
  3913. SeeAlso: AH=00h,AX=0070h,AX=007Eh,AX=6F04h
  3914. Index:    video modes
  3915. --------V-106F06-----------------------------
  3916. INT 10 - VIDEO - Video7 VGA,VEGA VGA - SELECT AUTOSWITCH MODE
  3917.     AX = 6F06h
  3918.     BL = Autoswitch mode select
  3919.          00h select EGA/VGA-only modes
  3920.          01h select Autoswitched VGA/EGA/CGA/MGA modes
  3921.          02h select 'bootup' CGA/MGA modes
  3922.     BH = enable/disable (00h enable, 01h = disable selection)
  3923. --------V-106F07-----------------------------
  3924. INT 10 - VIDEO -  Video7 VGA,VEGA VGA - GET VIDEO MEMORY CONFIGURATION
  3925.     AX = 6F07h
  3926. Return: AL = 6Fh
  3927.     AH = bits 0-6 = number of 256K blocks of video memory
  3928.          bit 7    = DRAM/VRAM (0: DRAM, 1: VRAM)
  3929.     BH = chip revision (SR8F) (S/C Chip in VEGA VGA)
  3930.     BL = chip revision (SR8E) (G/A Chip in VEGA VGA)
  3931.     CX = 0000h
  3932. SeeAlso: AH=12h/BL=10h
  3933. --------V-1070-------------------------------
  3934. INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF VIDEO RAM
  3935.     AH = 70h
  3936. Return: AX:BX -> WORD containing green plane's offset
  3937.     AX:CX -> WORD containing green plane's segment
  3938.     AX:DX -> WORD containing segment of red (offset 0) and blue (offset
  3939.             4000) planes
  3940. SeeAlso: AH=71h
  3941. --------V-107000BX0000-----------------------
  3942. INT 10 - Everex Extended Video BIOS - RETURN EMULATION STATUS
  3943.     AX = 7000h
  3944.     BX = 0000h
  3945. Return: AL = 70h if Trident-based Everex card
  3946.     CL = monitor type (see below)
  3947.     CH = feature bits (see below)
  3948.     DX = video board info
  3949.         bits 4-15: board ID model
  3950.         bits 0-3:  board ID revision
  3951.     DI = BCD BIOS version number
  3952. Note:    board models for Trident-based Everex cards:
  3953.         236h Ultragraphics II
  3954.         620h Vision VGA
  3955.         673h EVGA
  3956.         678h Viewpoint
  3957. SeeAlso: AX=5F01h,AH=FF"Oak"
  3958.  
  3959. Values for monitor type:
  3960.  00h    mono
  3961.  01h    CGA
  3962.  02h    EGA
  3963.  03h    digital multifrequency
  3964.  04h    IBM PS/2
  3965.  05h    IBM 8514
  3966.  06h    SuperVGA
  3967.  07h    analog multifrequency
  3968.  08h    super multifrequency
  3969.  
  3970. Bitfields for feature bits:
  3971.  bits 7,6  memory size
  3972.     00 = 256K
  3973.     01 = 512K
  3974.     10 = 1024K
  3975.     11 = 2048K
  3976.  bit 5    special oscillator present
  3977.  bit 4    VGA protect enabled
  3978.  bit 0    6845 emulation
  3979. --------V-107000BX0004-----------------------
  3980. INT 10 - Everex Extended Video BIOS - GET PAGING FUNCTION POINTER FOR CURR MODE
  3981.     AX = 7000h
  3982.     BX = 0004h
  3983. Return: ES:DI -> FAR paging function (call with DL = page to set)
  3984. Note:    the word preceding ES:DI is the length of the function in bytes, and
  3985.       the last byte of the function is a FAR return instruction.
  3986. SeeAlso: AX=4F05h,AX=7000h/BX=0000h,AX=7000h/BX=0005h
  3987. --------V-107000BX0005-----------------------
  3988. INT 10 - Everex Extended Video BIOS - GET SUPPORTED MODE INFO
  3989.     AX = 7000h
  3990.     BX = 0005h
  3991.     CL = maximum number of modes to get info for
  3992.     CH = mode type to get info for (see below)
  3993.     DL = monitor type to get info for
  3994.     ES:DI -> buffer for mode info (see below)
  3995. Return: CL = total number of modes fitting criteria
  3996.     CH = size of each info record
  3997. SeeAlso: AX=7000h/BX=0000h,AX=7000h/BX=0004h
  3998.  
  3999. Values for mode type:
  4000.  00h    all modes
  4001.  01h    monochrome text modes
  4002.  02h    color text modes
  4003.  03h    four-color CGA graphics modes
  4004.  04h    two-color CGA graphics modes
  4005.  05h    16-color graphics modes
  4006.  06h    256-color graphics modes
  4007.  
  4008. Format of mode information record:
  4009. Offset    Size    Description
  4010.  00h    BYTE    mode number (bit 7 set if extended mode)
  4011.  01h    BYTE    mode type (see above)
  4012.  02h    BYTE    info bits
  4013.         bits 7,6 reserved
  4014.              5     monochrome mode
  4015.              4     interlaced display
  4016.              3     requires special oscillator
  4017.              2,1 memory required
  4018.              00 = 256K
  4019.              01 = 512K
  4020.              10 = 1024K
  4021.              11 = 2048K
  4022.              0     reserved
  4023.  03h    BYTE    font height
  4024.  04h    BYTE    text columns on screen
  4025.  05h    BYTE    text rows on screen
  4026.  06h    WORD    number of scan lines
  4027.  08h    BYTE    color information
  4028.         bits 7-4 reserved
  4029.              3-0 bits per pixel
  4030. --------V-1071-------------------------------
  4031. INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF INCRAM
  4032.     AH = 71h
  4033. Return: AX:BX -> WORD containing segment address of INCRAM
  4034.     AX:CX -> WORD containing offset of INCRAM
  4035. SeeAlso: AH=70h
  4036. --------V-1072-------------------------------
  4037. INT 10 - VIDEO - TANDY 2000 only - SCROLL RIGHT PART OR ALL OF SCREEN
  4038.     AH = 72h
  4039.     AL = number of columns to shift scroll area, 00h to clear entire area
  4040.     BH = new attributes for blanked columns at left
  4041.     CH,CL = row, column of upper left corner of scroll area
  4042.     DH,DL = row, column of lower right corner of scroll area
  4043. SeeAlso: AH=06h,AH=07h,AH=73h,INT 15/AH=12h/BH=05h
  4044. --------V-1073-------------------------------
  4045. INT 10 - VIDEO - TANDY 2000 only - SCROLL LEFT PART OR ALL OF SCREEN
  4046.     AH = 73h
  4047.     AL = number of columns to shift scroll area, 00h to clear entire area
  4048.     BH = new attributes for blanked columns at right
  4049.     CH,CL = row, column of upper left corner of scroll area
  4050.     DH,DL = row, column of lower right corner of scroll area
  4051. SeeAlso: AH=06h,AH=07h,AH=72h,INT 15/AH=12h/BH=05h
  4052. --------V-107F00-----------------------------
  4053. INT 10 - SOLLEX SuperVGA - GET EXTENSIONS INFO
  4054.     AX = 7F00h
  4055. Return: AL <> 7Fh if not supported
  4056.     AL = 7Fh if supported
  4057.         AH = status
  4058.         00h successful
  4059.             ES:DI -> info structure (see below)
  4060.         01h failed
  4061. Program: the SOLLEX (Smos videO controLLer EXtensions) SuperVGA functions are
  4062.       an extension to the VESA SuperVGA BIOS Extensions (see AX=4F00h) by
  4063.       Seiko Epson Corporation intended to provided a standardized interface
  4064.       to SuperVGA functionality not addressed by the VESA standard
  4065. SeeAlso: AX=4F00h
  4066.  
  4067. Format of info structure:
  4068. Offset    Size    Description
  4069.  00h    DWORD    pointer to VESA function dispatch table
  4070.  04h    DWORD    pointer to SOLLEX function dispatch table
  4071.  08h    DWORD    pointer to VESA SuperVGA info (see AX=4F00h)
  4072.  0Ch    DWORD    pointer to mode info structure table, consisting of
  4073.         alternating ResInfo (see below) and VESA mode information
  4074.         (see AX=4F01h) blocks, terminated with an FFFFh word
  4075.  10h    DWORD    pointer to font info structure table (see below)
  4076.  14h    WORD    high resolution crystal frequency in Hz (0000h = not present)
  4077.  16h    DWORD    pointer to ASCIZ ID string
  4078.  1Ah    DWORD    pointer to timeout reset table
  4079.         array of bytes, each a multiple of the minimum time increment
  4080.  1Eh    WORD    minimum time increment in timer ticks
  4081.  20h    BYTE    inverse options supported
  4082.         bit 0: inverse supported
  4083.         bits 1-7: reserved
  4084.  21h    BYTE    normal color value
  4085.  22h    BYTE    inverse color value
  4086.  23h    WORD    port to be accessed for normal/inverse settings
  4087.  25h    WORD    type of interface chip (currently undefined)
  4088.  27h    WORD    program operational mode
  4089.         bits 1-0: 00 no preference
  4090.               01 terse (minimum detail in program messages)
  4091.               10 verbose
  4092.               11 use menus if supported, verbose mode otherwise
  4093.         bits 7-2: reserved
  4094.  29h    WORD    SOLLEX specification version
  4095.  2Bh    WORD    version of VESA/SOLLEX implementation
  4096.  2Dh    DWORD    offset to relocatable portion of SOLLEX extensions (for CONFIG)
  4097.  2Eh    DWORD    offset to unused section of the extensions ROM
  4098.  31h 16 BYTEs    reserved
  4099. Note:    all DWORD pointers initially require segment fixups; if the segment
  4100.       is 0000h, it should be changed to the returned ES, otherwise it
  4101.       may be assumed to be correct
  4102.  
  4103. Format of ResInfo:
  4104. Offset    Size    Description
  4105.  00h    WORD    16-bit mode number
  4106.  02h    WORD    adapter type (00h VGA, 01h EGA, 02h CGA, 03h MDA)
  4107.  04h    WORD    display info (see AX=7F01h/BL=01h)
  4108.  06h    DWORD    pointer to video parameter table
  4109.  0Ah    BYTE    replacement entry in master Video Parameter
  4110.  0Bh    BYTE    mode requested for mode set by BIOS
  4111.  0Ch    DWORD    pointer to LoadReg table
  4112.  10h    BYTE    index into table of clock values (see below)
  4113.  
  4114. Format of font info table [array] entry:
  4115. Offset    Size    Description
  4116.  00h    BYTE    required font height
  4117.  01h    BYTE    parameter to load text mode font
  4118.  02h    BYTE    parameter to load graphics mode font
  4119.  
  4120. Values for clock value index:
  4121.  00h    25 MHz
  4122.  01h    28 MHz
  4123.  02h    PCLK
  4124.  03h    31.5 MHz (VESA 640x480)
  4125.  04h    reserved
  4126.  05h    16 MHz (EGA)
  4127.  06h    PCLK
  4128.  07h    24 MHz (EGA)
  4129.  08h    25 MHz
  4130.  09h    28 MHz
  4131.  0Ah    36 MHz
  4132.  0Bh    45 MHz (for 1024x768)
  4133.  0Ch    80 MHz
  4134.  0Dh    40 MHz
  4135.  0Eh    65 MHz
  4136.  0Fh     1 MHz (for powerdown)
  4137. --------V-107F00BX4000-----------------------
  4138. INT 10 - Diamond Stealth 24 - GET S3 INFORMATION BLOCK
  4139.     AX = 7F00h
  4140.     BX = 4000h
  4141. Return: AX = 007Fh if supported
  4142.         DX:BX -> DAC set mode routine
  4143. SeeAlso: AX=7F00h/BX=4001h,AX=7F00h/BX=4002h
  4144. --------V-107F00BX4001-----------------------
  4145. INT 10 - Diamond Stealth 24 - GET LINEAR ADDRESS
  4146.     AX = 7F00h
  4147.     BX = 4001h
  4148. Return: AX = 007Fh if supported
  4149.         CX = current linear address base (high word)
  4150. SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4002h
  4151. --------V-107F00BX4002-----------------------
  4152. INT 10 - Diamond Stealth 24 - SET LINEAR ADDRESS
  4153.     AX = 7F00h
  4154.     BX = 4002h
  4155.     CX = new linear address base (high word)
  4156. Return: AX = 007Fh if supported
  4157. SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4001h
  4158. --------V-107F01BL00-------------------------
  4159. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - SET ADAPTER
  4160.     AX = 7F01h
  4161.     BL = 00h
  4162.     CX = adapter request
  4163.         bits 1-0: adapter type (00 VGA, 01 EGA, 10 CGA, 11 MDA)
  4164.         bit 2:    reserved
  4165.         bits 4-3: change displays (00 none, 01 analog 10 digital 11 panel)
  4166.         bits 6-5: desired monitor sense (01 color, 10 mono, 11=8514)
  4167.         bit 7:    lock override
  4168.         bit 8:    alternate adapter mode
  4169.         bits 15-9: reserved
  4170. Return: AL = 7Fh if supported
  4171.         AH = status
  4172.         00h successful
  4173.         01h failed
  4174.     AL <> 7Fh if not supported
  4175. Note:    initializes video hardware to a particular standard
  4176. SeeAlso: AX=7F00h,AX=7F01h/BL=01h,AX=7F01h/BL=02h
  4177. --------V-107F01BL01-------------------------
  4178. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - GET ADAPTER
  4179.     AX = 7F01h
  4180.     BL = 01h
  4181. Return: AL <> 7Fh if not supported
  4182.     AL = 7Fh if supported
  4183.         AH = status
  4184.         00h successful
  4185.         01h failed
  4186.         BX = adapter type (see AX=7F01h/BL=00h)
  4187.         DX = display type (see below)
  4188. SeeAlso: AX=7F00h,AX=7F01h/BL=00h,AX=7F01h/BL=02h
  4189.  
  4190. Bitfields for display type:
  4191.  bits 1-0 monitor sense (00 none, 01 color, 10 mono, 11=8514)
  4192.  bit 2    multi-frequency analog monitor active
  4193.  bit 3    LCD panel active
  4194.  bit 4    plasma/electroluminescent panel active
  4195.  bit 5    PS/2-type monitor active
  4196.  bit 6    multi-frequency digital monitor active
  4197.  bit 7    Enhanced Color Display monitor active
  4198.  bit 8    alternate display active
  4199.  bits 15-9 reserved
  4200. --------V-107F01BL02-------------------------
  4201. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - DETERMINE ADAPTER SUPPORT
  4202.     AX = 7F01h
  4203.     BL = 02h
  4204.     CX = adapter request (see AX=7F01h/BL=00h)
  4205. Return: AL <> 7Fh if not supported
  4206.     AL = 7Fh if supported
  4207.         AH = status
  4208.         00h requested setting can successfully be made
  4209.         01h requested setting not available in this configuration
  4210. SeeAlso: AX=7F00h,AX=7F01h/BL=00h
  4211. --------V-107F02BL00-------------------------
  4212. INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - SET DISPLAY OUTPUT
  4213.     AX = 7F02h
  4214.     BL = 00h
  4215.     CX = display output setting (see below)
  4216. Return: AL <> 7Fh if not supported
  4217.     AL = 7Fh if supported
  4218.         AH = status
  4219.         00h successful
  4220.         01h failed
  4221. SeeAlso: AX=7F00h,AX=7F02h/BL=00h
  4222.  
  4223. Bitfields for display output setting:
  4224.  bit 0    CRTC control in bits 2,1 valid
  4225.  bit 1    enable digital output
  4226.  bit 2    enable analog output
  4227.  bit 3    panel control in bits 5,4 valid
  4228.  bit 4    enable LCD output
  4229.  bit 5    enable plasma/EL output
  4230.  bit 6    inverse control in bit 7 valid
  4231.  bit 7    0=normal, 1=inverse
  4232.  bits 15-8 reserved
  4233. --------V-107F02BL01-------------------------
  4234. INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - GET DISPLAY OUTPUT
  4235.     AX = 7F02h
  4236.     BL = 01h
  4237. Return: AL <> 7Fh if not supported
  4238.     AL = 7Fh if supported
  4239.         AH = status
  4240.         00h successful
  4241.             BX = display output setting (see AX=7F02h/BL=00h)
  4242.             CX = displays attached (see below)
  4243.         01h failed
  4244. SeeAlso: AX=7F00h,AX=7F02h/BL=00h
  4245.  
  4246. Bitfields for displays attached:
  4247.  bit 0    PS/2 display on analog output
  4248.  bit 1    multi-frequency monitor on analog output
  4249.  bit 2    LCD panel attached
  4250.  bit 3    plasma/electroluminescent panel attached
  4251.  bit 4    multi-frequency monitor on digital output
  4252.  bit 5    Enhanced Color Display attached to digital outpt
  4253.  bit 6    alternate display
  4254.  bits 15-7 reserved
  4255. --------V-107F03BL00-------------------------
  4256. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GET SUPPORT INFO
  4257.     AX = 7F03h
  4258.     BL = 00h
  4259.     CX = support type
  4260.         0000h VGA, 0001h EGA, 0002h CGA, 0003h MDA, 0004h extensions,
  4261.         0005h-0012h reserved for SOLLEX, 0013h Hercules,
  4262.         0014h-001Fh reserved for SOLLEX, 0020h-00FFh reserved for OEM
  4263. Return: AL <> 7Fh if not supported
  4264.     AL = 7Fh if supported
  4265.         AH = status
  4266.         00h successful
  4267.             CX = size of video support code
  4268.             DX = segment of physical video support (0000h if no ROM)
  4269.             ES = segment of active video support
  4270.             ES:DI -> information block (DI = 0000h if none available)
  4271.         01h failed
  4272. SeeAlso: AX=7F03h/BL=01h
  4273. --------V-107F03BL01-------------------------
  4274. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - INITIALIZE VIDEO SUPPORT
  4275.     AX = 7F03h
  4276.     BL = 01h
  4277.     CX = support request
  4278.     ES = segment of support code
  4279. Return: AL <> 7Fh if not supported
  4280.     AL = 7Fh if supported
  4281.         AH = status
  4282.         00h successful
  4283.         01h failed
  4284. Note:    initializes the indicated video support by calling ES:0003h; this
  4285.       function may be used to switch the active video support back to
  4286.       ROM after AX=7F03h/BL=02h
  4287. SeeAlso: AX=7F03h/BL=00h
  4288. --------V-107F03BL02-------------------------
  4289. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GO RAM RESIDENT
  4290.     AX = 7F03h
  4291.     BL = 02h
  4292.     CX = support request
  4293.     ES = destination segment
  4294. Return: AL <> 7Fh if not supported
  4295.     AL = 7Fh if supported
  4296.         AH = status
  4297.         00h successful
  4298.         01h failed
  4299. SeeAlso: AX=7F00h,AX=7F03h/BL=01h
  4300. --------V-107F04BL00-------------------------
  4301. INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET POWER STATE
  4302.     AX = 7F04h
  4303.     BL = 00h
  4304.     CX = new power state
  4305. Return: AL <> 7Fh if not supported
  4306.     AL = 7Fh if supported
  4307.         AH = status
  4308.         00h successful
  4309.         01h failed
  4310. Note:    higher values progressively reduce the operations available on the
  4311.       video adapter while yielding increasing power savings
  4312. SeeAlso: AX=7F00h,AX=7F04h/BL=01h
  4313. --------V-107F04BL01-------------------------
  4314. INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET POWER STATE
  4315.     AX = 7F04h
  4316.     BL = 01h
  4317. Return: AL <> 7Fh if not supported
  4318.     AL = 7Fh if supported
  4319.         AH = status
  4320.         00h successful
  4321.             CX = current power state
  4322.             DX = maximum state
  4323.         01h failed
  4324. SeeAlso: AX=7F00h,AX=7F04h/BL=00h
  4325. --------V-107F04BL02-------------------------
  4326. INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET TIMEOUT RESET
  4327.     AX = 7F04h
  4328.     BL = 02h
  4329.     CX = timeout reset
  4330. Return: AL <> 7Fh if not supported
  4331.     AL = 7Fh if supported
  4332.         AH = status
  4333.         00h successful
  4334.         01h failed
  4335. SeeAlso: AX=7F00h,AX=7F04h/BL=03h
  4336. --------V-107F04BL03-------------------------
  4337. INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET TIMEOUT RESET
  4338.     AX = 7F04h
  4339.     BL = 03h
  4340. Return: AL <> 7Fh if not supported
  4341.     AL = 7Fh if supported
  4342.         AH = status
  4343.         00h successful
  4344.             BX = time increment
  4345.             CX = current timeout reset
  4346.             DX = maximum timeout reset
  4347.             ES:DI -> timeout reset table (array of bytes)
  4348.         01h failed
  4349. Note:    the timeout period is computed as (BYTE ES:[DI+CX]) * BX timer ticks
  4350. SeeAlso: AX=7F00h,AX=7F04h/BL=02h
  4351. --------V-107F05-----------------------------
  4352. INT 10 - SOLLEX SuperVGA - LOAD REGISTER
  4353.     AX = 7F05h
  4354.     ES:DI -> register value table (see below)
  4355. Return: AL <> 7Fh if not supported
  4356.     AL = 7Fh if supported
  4357.         AH = status
  4358.         00h successful
  4359.         01h failed
  4360. SeeAlso: AH=F1h,AH=F3h,AH=F5h
  4361.  
  4362. Format of register value table:
  4363. Offset    Size    Description
  4364.  00h    WORD    base I/O register (FFFFh = end of list)
  4365.  02h 2N BYTEs    pairs of values to be written to the base I/O register as an
  4366.         index value and the following register as a data byte
  4367.  2N+2    WORD    FFFFh (end of data list)
  4368.     ... (repeats until FFFFh base address)
  4369. --------V-107F06-----------------------------
  4370. INT 10 - SOLLEX SuperVGA - MULTIPLE FONT CONTROL
  4371.     AX = 7F06h
  4372.     BL = subfunction
  4373.         00h set multiple font state
  4374.         CX = new state (00h off, 01h on)
  4375.         01h get multiple font state
  4376.         Return: BL = current state (00h off, 01h on)
  4377. Return: AL <> 7Fh if not supported
  4378.     AL = 7Fh if supported
  4379.         AH = status
  4380.         00h successful
  4381.         01h failed
  4382. SeeAlso: AH=11h
  4383. --------V-107F07-----------------------------
  4384. INT 10 - SOLLEX SuperVGA - FILL VIDEO RAM
  4385.     AX = 7F07h
  4386.     BL = how much to fill
  4387.        00h regen size
  4388.        01h all video memory
  4389.     CX = pattern to write (normally 0720h for text modes and 0000h for gr)
  4390. Return: AL <> 7Fh if not supported
  4391.     AL = 7Fh if supported
  4392.         AH = status
  4393.         00h successful
  4394.         01h failed
  4395. SeeAlso: AH=06h
  4396. --------A-1080-------------------------------
  4397. INT 10 - CU Writer v1.4 - GET OPTION
  4398.     AH = 80h
  4399.     AL = desired option
  4400. Return: ???
  4401. Program: CU Writer is a public-domain Thai-English word processor from
  4402.       Chulalongkorn University, Bangkok
  4403. SeeAlso: AH=81h"CU Writer"
  4404. --------Q-1080--DX4456-----------------------
  4405. INT 10 U - VIDEO - DESQview 2.0x only - internal - SET ??? HANDLER
  4406.     AH = 80h
  4407.     DX = 4456h ('DV')
  4408.     ES:DI -> FAR subroutine to be called on ???
  4409. Return: DS = segment of DESQview data structure for video buffer
  4410. Note:    this function is probably meant for internal use only, due to the magic
  4411.       value required in DX
  4412.     the subroutine seems to be called when the DESQview menu is accessed;
  4413.       on entry, AL = 03h or 04h
  4414. --------A-1081-------------------------------
  4415. INT 10 - CU Writer v1.4 - SET OPTION
  4416.     AH = 81h
  4417.     ???
  4418. Return: ???
  4419. SeeAlso: AH=80h"CU Writer"
  4420. --------Q-1081--DX4456-----------------------
  4421. INT 10 U - VIDEO - DESQview 2.0x only - internal - GET ???
  4422.     AH = 81h
  4423.     DX = 4456h ('DV')
  4424. Return: ES = segment of DESQview data structure for video buffer
  4425.         BYTE ES:[0] = current window number in DV 2.0x
  4426. Note:    this function is probably meant for internal use only, due to the magic
  4427.       value required in DX
  4428. SeeAlso: AH=82h"DESQview"
  4429. --------Q-1082--DX4456-----------------------
  4430. INT 10 U - VIDEO - DESQview 2.0x only - internal - GET CURRENT WINDOW INFO
  4431.     AH = 82h
  4432.     DX = 4456h ('DV')
  4433. Return: DS = segment in DESQview for data structure
  4434.          in DV 2.00,
  4435.           BYTE DS:[0] = window number
  4436.           WORD DS:[1] = segment of other data structure
  4437.           WORD DS:[3] = segment of window's object handle
  4438.     ES = segment of DESQview data structure for video buffer
  4439.     AL = current window number
  4440.     AH = ???
  4441.     BL = direct screen writes
  4442.         00h program does not do direct writes
  4443.         01h program does direct writes, so shadow buffer not usable
  4444.     BH = ???
  4445.     CL = current video mode
  4446.     CH = ???
  4447. Note:    this function is probably meant for internal use only, due to the magic
  4448.       value required in DX
  4449. SeeAlso: AH=81h"DESQview"
  4450. --------J-108200-----------------------------
  4451. INT 10 - VIDEO - AX PC - GET/SET SCROLL MODE
  4452.     AX = 8200h
  4453.     BL = new scroll mode or FFh to get current mode
  4454.         00h dynamic, 01h software
  4455. Return: AL = scroll mode (current mode if BL=FFh, previous mode otherwise)
  4456. SeeAlso: AH=06h,AH=07h
  4457. --------J-108300-----------------------------
  4458. INT 10 - VIDEO - AX PC - GET VIDEO RAM ADDRESS
  4459.     AX = 8300h
  4460. Return: AX = offset of video RAM
  4461.     ES:BX -> virtual text RAM buffer
  4462. SeeAlso: AX=5201h
  4463. --------N-108B-------------------------------
  4464. INT 10 - Alloy MW386 - FORCE WORKSTATION SCREEN UPDATE
  4465.     AH = 8Bh
  4466. SeeAlso: AH=92h,AH=93h
  4467. --------N-1090-------------------------------
  4468. INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION DISPLAY MODE
  4469.     AH = 90h
  4470. Return: AL = current video mode (see AH=00h)
  4471. SeeAlso: AH=91h
  4472. --------N-1091-------------------------------
  4473. INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION ADAPTER TYPE
  4474.     AH = 91h
  4475. Return: AL = video adapter type (see below)
  4476. Note:    types less than 80h do not imply that the current user is on the host
  4477. SeeAlso: AH=90h
  4478.  
  4479. Values for video adapter type:
  4480.  00h    monochrome
  4481.  01h    Hercules monochrome graphics
  4482.  02h    CGA
  4483.  03h    EGA
  4484.  04h    VGA
  4485.  80h    monochrome text terminal
  4486.  81h    Hercules graphics terminal
  4487.  82h    color graphics terminal
  4488. --------N-1092-------------------------------
  4489. INT 10 - Alloy MW386 - INHIBIT WORKSTATION SCREEN UPDATES
  4490.     AH = 92h
  4491. Note:    the terminal will be updated even when screen updates are inhibited if
  4492.       TTY output is used
  4493. SeeAlso: AH=8Bh
  4494. --------N-1093-------------------------------
  4495. INT 10 - Alloy MW386 - REDRAW SCREEN
  4496.     AH = 93h
  4497. SeeAlso: AH=8Bh,AH=FFh
  4498. --------A-10A0-------------------------------
  4499. INT 10 - CU Writer v1.4 - SET PIXEL WRITE MODE
  4500.     AH = A0h
  4501.     ???
  4502. Return: ???
  4503. Program: CU Writer is a public-domain Thai-English word processor from
  4504.       Chulalongkorn University, Bangkok
  4505. SeeAlso: AH=80h"CU Writer",AH=B0h
  4506. --------A-10B0-------------------------------
  4507. INT 10 - CU Writer v1.4 - PUT PIXEL
  4508.     AH = B0h
  4509.     ???
  4510. Return: ???
  4511. SeeAlso: AH=A0h"CU Writer",AH=B1h,AH=B2h,AH=B3h,AH=B4h,AH=B5h,AH=D0h
  4512. --------A-10B1-------------------------------
  4513. INT 10 - CU Writer v1.4 - MOVE TO
  4514.     AH = B1h
  4515.     ???
  4516. Return: ???
  4517. SeeAlso: AH=B0h,AH=B2h,AH=C0h"CU Writer"
  4518. --------A-10B2-------------------------------
  4519. INT 10 - CU Writer v1.4 - DRAW LINE TO
  4520.     AH = B2h
  4521.     ???
  4522. Return: ???
  4523. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h,AH=B5h
  4524. --------A-10B3-------------------------------
  4525. INT 10 - CU Writer v1.4 - FLOOD FILL
  4526.     AH = B3h
  4527.     ???
  4528. Return: ???
  4529. SeeAlso: AH=B2h,AH=B5h
  4530. --------A-10B4-------------------------------
  4531. INT 10 - CU Writer v1.4 - DRAW RECTANGLE
  4532.     AH = B4h
  4533.     ???
  4534. Return: ???
  4535. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B5h
  4536. --------A-10B5-------------------------------
  4537. INT 10 - CU Writer v1.4 - DRAW FILLED RECTANGLE
  4538.     AH = B5h
  4539.     ???
  4540. Return: ???
  4541. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  4542. --------b-10BF00-----------------------------
  4543. INT 10 - VIDEO - Compaq Extensions - SELECT EXTERNAL MONITOR
  4544.     AX = BF00h
  4545. Desc:    specify that the external monitor become the active monitor
  4546. Note:    all registers preserved and the internal monitor is blanked
  4547. SeeAlso: AX=BF01h
  4548. --------b-10BF01-----------------------------
  4549. INT 10 - VIDEO - Compaq Extensions - SELECT INTERNAL MONITOR
  4550.     AX = BF01h
  4551. Desc:    specify that the internal monitor become the active monitor
  4552. Note:    all registers preserved and the external monitor is blanked
  4553. SeeAlso: AX=BF00h
  4554. --------b-10BF02-----------------------------
  4555. INT 10 - VIDEO - Compaq Extensions - SET MASTER MODE OF CURRENT CTRLR
  4556.     AX = BF02h
  4557.     BH = master mode
  4558.         04h CGA
  4559.         05h EGA
  4560.         07h MDA
  4561. SeeAlso: AX=BF03h
  4562. --------b-10BF03BX0000-----------------------
  4563. INT 10 - VIDEO - Compaq Extensions - GET ENVIRONMENT
  4564.     AX = BF03h
  4565.     BX = 0000h
  4566. Return: BH = active monitor
  4567.         00h = external
  4568.         01h = internal
  4569.     BL = master mode
  4570.         00h = switchable VDU not present
  4571.         04h = CGA
  4572.         05h = EGA
  4573.         07h = MDA
  4574.         08h = switchable LCD controller present
  4575.     CH = 00h (reserved)
  4576.     CL = switchable VDU mode supported
  4577.         bit     0   = CGA supported
  4578.         bits 1,2 = reserved (1)
  4579.         bit     3   = MDA supported
  4580.         bits 4-7 = reserved (1)
  4581.     DH = internal monitor type (see below)
  4582.     DL = external monitor type (see below)
  4583. SeeAlso: AH=1Ah,AX=BF00h,AX=BF01h,AX=BF02h
  4584.  
  4585. Values for monitor type:
  4586.  00h    none
  4587.  01h    dual-mode monitor
  4588.  02h    5153 RGB monitor
  4589.  03h    Compaq Color monitor
  4590.  04h    640x400 flat panel
  4591.  05h    VGC monochrome
  4592.  06h    VGC color
  4593.  07h    LCD VGA
  4594. --------b-10BF04-----------------------------
  4595. INT 10 - VIDEO - Compaq Extensions - SET MODE SWITCH DELAY
  4596.     AX = BF04h
  4597.     BH = new state of delay
  4598.         00h enabled
  4599.         01h disabled
  4600. Note:    the 04/08/93 sytem ROM appears to use BL instead of BH; a future
  4601.       version of the list will provide more definite information
  4602. SeeAlso: AX=BF05h
  4603. --------b-10BF05-----------------------------
  4604. INT 10 - VIDEO - Compaq Extensions - ENABLE/DISABLE DISPLAY
  4605.     AX = BF05h
  4606.     BH = new state of video
  4607.         00h off
  4608.         01h on
  4609. Note:    the 04/08/93 sytem ROM appears to use BL instead of BH; a future
  4610.       version of the list will provide more definite information
  4611. SeeAlso: AH=12h/BL=36h,AX=BF04h
  4612. --------b-10BF06-----------------------------
  4613. INT 10 - VIDEO - Compaq SLT/286 - READ GRAY SCALE TABLE
  4614.     AX = BF06h
  4615.     CL = address to be read from gray scale table
  4616. Return: AL = bit 3-0 - Value read from gray scale table
  4617.     CL = address to be read from gray scale table
  4618. SeeAlso: AH=12h/BL=33h,AX=BF07h
  4619. --------b-10BF07-----------------------------
  4620. INT 10 - VIDEO - Compaq SLT/286 - WRITE GRAY SCALE TABLE
  4621.     AX = BF07h
  4622.     CH = value to write to gray scale table
  4623.     CL = address to be written to gray scale table
  4624. SeeAlso: AX=BF06h,AX=BF08h
  4625. --------b-10BF08-----------------------------
  4626. INT 10 - VIDEO - Compaq SLT/286 - WRITE COLOR MIX REGISTERS
  4627.     AX = BF08h
  4628.     CH = bits 7-4 green weight
  4629.          bits 3-0 blue weight
  4630.     CL = bits 7-4 unused
  4631.          bits 3-0 red weight
  4632. SeeAlso: AH=12h/BH=33h,AX=BF07h
  4633. --------V-10BFA0BXADAD-----------------------
  4634. INT 10 - VIDEO - Compaq ADAPT.COM - INSTALLATION CHECK
  4635.     AX = BFA0h
  4636.     BX = ADADh
  4637. Return: AX = BDBDh if newer ADAPT.COM installed
  4638.         BX = BCD version (BH = major, BL = minor)
  4639.         CL = ???
  4640.         CH = ???
  4641.         DL = ???
  4642.     AX = ADADh if older version of ADAPT.COM installed
  4643. Program: ADAPT is Compaq's Advanced Display Attribute Programming Tool, an
  4644.       optionally-resident utility for setting display colors and cursor
  4645.       size; when resident, it also includes a screen blanker
  4646. SeeAlso: AX=BFA1h,AX=BFA2h,AX=DFA5h
  4647. Index:    screen saver;ADAPT
  4648. --------V-10BFA1-----------------------------
  4649. INT 10 - VIDEO - Compaq ADAPT.COM - GET ???
  4650.     AX = BFA1h
  4651. Return: AX = BDBEh if supported
  4652.         CH = current value of ???
  4653.         DL = current value of ???
  4654. SeeAlso: AX=BFA0h,AX=BFA2h
  4655. --------V-10BFA2-----------------------------
  4656. INT 10 - VIDEO - Compaq ADAPT.COM - SET ???
  4657.     AX = BFA2h
  4658.     CH = new value for ???
  4659.     DL = new value for ???
  4660. Return: AX = BDBEh if supported
  4661. SeeAlso: AX=BFA0h,AX=BFA1h
  4662. --------A-10C0-------------------------------
  4663. INT 10 - CU Writer v1.4 - GO TO TEXT ROW AND COLUMN
  4664.     AH = C0h
  4665.     ???
  4666. Return: ???
  4667. SeeAlso: AH=B1h,AH=C1h,AH=C2h,AH=C3h,AH=C4h
  4668. --------A-10C1-------------------------------
  4669. INT 10 - CU Writer v1.4 - OUTPUT TEXT
  4670.     AH = C1h
  4671.     ???
  4672. Return: ???
  4673. SeeAlso: AH=C0h,AH=C2h,AH=C3h,AH=C4h
  4674. --------A-10C2-------------------------------
  4675. INT 10 - CU Writer v1.4 - REVERSE TEXT
  4676.     AH = C2h
  4677.     ???
  4678. Return: ???
  4679. SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=C4h
  4680. --------A-10C3-------------------------------
  4681. INT 10 - CU Writer v1.4 - TEXT BAR
  4682.     AH = C3h
  4683.     ???
  4684. Return: ???
  4685. SeeAlso: AH=C0h,AH=C1h,AH=C4h
  4686. --------A-10C4-------------------------------
  4687. INT 10 - CU Writer v1.4 - TEXT MENU
  4688.     AH = C4h
  4689.     ???
  4690. Return: ???
  4691. SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=D0h
  4692. --------V-10CC00SI0000-----------------------
  4693. INT 10 - VIDEO - UltraVision - GET STATUS (INSTALLATION CHECK)
  4694.     AX = CC00h
  4695.     SI = 0000h (if checking version)
  4696. Return: CX = ABCDh
  4697.     AL = Ultravision extensions
  4698.         00h enabled
  4699.         FFh disabled
  4700.     AH = card designator
  4701.     BX:00F0h -> palette values (for compatibility with NEWFONT)
  4702.     DX = support for high resolution modes
  4703.         00h not active
  4704.         01h active
  4705.     SI = UltraVision version number (v1.2+), high byte=major,low byte=minor
  4706.        = unchanged for versions <1.2
  4707. SeeAlso: AX=CC01h,AX=CC02h
  4708. --------V-10CC01-----------------------------
  4709. INT 10 - VIDEO - UltraVision - DISABLE EXTENSIONS
  4710.     AX = CC01h
  4711. Notes:    subsequent BIOS calls will be passed through to previous handler
  4712.     should be followed immediately by mode set to restore normal EGA/VGA
  4713.       state
  4714. SeeAlso: AX=CC02h
  4715. --------V-10CC02-----------------------------
  4716. INT 10 - VIDEO - UltraVision - ENABLE EXTENSIONS
  4717.     AX = CC02h
  4718. Note:    should be followed immediately by mode set to restore previous
  4719.       UltraVision state
  4720. SeeAlso: AX=CC01h
  4721. --------V-10CD00-----------------------------
  4722. INT 10 - VIDEO - UltraVision - LOAD ULTRAVISION PALETTE (color EGA,VGA)
  4723.     AX = CD00h
  4724.     CL = palette table number (01h-07h for v1.x, 01h-0Fh for v2+)
  4725.     DS:DX -> 16-byte palette register list (colors for registers 00h-0Fh)
  4726. Notes:    if palette locking is in effect for the current mode, the new colors
  4727.       will be displayed immediately; otherwise, the system reverts to the
  4728.       default palette
  4729.     palette table 0 is reserved for the default palette and cannot be set
  4730.     UltraVision always sets the border color to black
  4731. SeeAlso: AX=CD01h,AX=CD02h
  4732. --------V-10CD01-----------------------------
  4733. INT 10 - VIDEO - UltraVision - SET PALETTE LOCKING STATUS (color EGA,VGA)
  4734.     AX = CD01h
  4735.     CL = palette locking value
  4736.         00h none
  4737.         01h text modes only (02h,03h)
  4738.         FFh all modes (all standard color text and graphics modes)
  4739. Notes:    intended for video modes with 16 or fewer colors
  4740. SeeAlso: AX=1000h,AX=1002h,AX=CD00h,AX=CD03h
  4741. --------V-10CD02-----------------------------
  4742. INT 10 - VIDEO - UltraVision - GET ULTRAVISION PALETTE (EGA,VGA)
  4743.     AX = CD02h
  4744. Return: CL = palette table number
  4745.     DS:DX -> 17-byte palette register list
  4746.     DS:SI -> current font names table (see below)
  4747. Note:    only the font names are valid on monochrome EGA systems
  4748. SeeAlso: AX=1009h,AX=CD00h
  4749.  
  4750. Format of palette register list:
  4751. Offset    Size    Description
  4752.  00h 16 BYTEs    colors for palette registers 00h through 0Fh
  4753.  10h    BYTE    border color
  4754.  
  4755. Format of current font names table (v2+):
  4756. Offset    Size    standard EGA    HiRes EGA    VGA
  4757.  00h  8 BYTEs    N/A        F19 font    F20 font
  4758.  08h  8 BYTEs    F14 font    F14 font    F14 font
  4759.  10h  8 BYTEs    N/A        F11 font    F10 font
  4760.  18h  8 BYTEs    F8 font        F8 font        F8 font
  4761.  
  4762. Format of current font names table (v1.x):
  4763. Offset    Size    HiRes EGA
  4764.  00h  8 BYTEs    F19/F14 font
  4765.  08h  8 BYTEs    F11/F8 font
  4766. --------V-10CD03-----------------------------
  4767. INT 10 - VIDEO - UltraVision - GET PALETTE LOCKING STATUS (color EGA,VGA)
  4768.     AX = CD03h
  4769. Return: CL = palette locking value
  4770.         00h none
  4771.         01h text modes only
  4772.         FFh all modes
  4773. SeeAlso: AX=CD01h
  4774. --------V-10CD04-----------------------------
  4775. INT 10 - VIDEO - UltraVision - GET UltraVision TEXT MODE (EGA,VGA)
  4776.     AX = CD04h
  4777. Return: AL = mode number (see below)
  4778. SeeAlso: AH=0Fh,AX=CC00h,AH=CDh
  4779.  
  4780. Values for video mode number:
  4781.  11h    80x25
  4782.  12h    80x43, 80x50
  4783.  13h    80x34, 80x36
  4784.  14h    80x60, 80x63
  4785.  19h    94x25
  4786.  1Ah    94x43, 94x50
  4787.  1Bh    94x36
  4788.  1Ch    94x63
  4789.  21h    108x25
  4790.  22h    108x43, 108x50
  4791.  23h    107x34, 108x36
  4792.  24h    108x60, 108x63
  4793.  31h    120x25
  4794.  32h    120x43, 120x50
  4795.  33h    132x25
  4796.  34h    132x44, 132x50
  4797.  39h    120x36
  4798.  3Ah    120x63
  4799.  3Bh    132x36
  4800.  3Ch    132x60
  4801. Index:    video modes
  4802. --------V-10CD05-----------------------------
  4803. INT 10 - VIDEO - UltraVision - SET CURSOR TYPE (EGA,VGA)
  4804.     AX = CD05h
  4805.     CL = type
  4806.         00h line cursor
  4807.         FFh box cursor
  4808. Note:    sets default cursor type for text-based programs
  4809. SeeAlso: AH=01h,AX=CD06h
  4810. --------V-10CD06-----------------------------
  4811. INT 10 - VIDEO - UltraVision - GET CURSOR TYPE (EGA,VGA)
  4812.     AX = CD06h
  4813. Return: CL = type
  4814.         00h line cursor
  4815.         FFh box cursor
  4816. SeeAlso: AH=03h,AX=CD05h
  4817. --------V-10CD07-----------------------------
  4818. INT 10 - VIDEO - UltraVision v1.2+ - SET UNDERLINE STATUS (EGA,VGA)
  4819.     AX = CD07h
  4820.     CL = hardware underline status
  4821.         00h off (color systems only)
  4822.         01h underline below characters
  4823.         02h strike through characters
  4824.     BL = foreground color for normal text (FFh = current)
  4825.     BH = foreground color for bright text (FFh = current)
  4826. Return: CL = hardware underline status
  4827.     BL = current foreground color for normal text
  4828.     BH = current foreground color for bright text
  4829. Notes:    when underline or strikeout is enabled in color text modes, the
  4830.       specified colors will be assigned temporarily to colors 01h and 09h,
  4831.       allowing affected text to match non-underlined text.    The color
  4832.       remapping uses values from the current onscreen palette regardless
  4833.       of the palette locking status (see AX=CD01h)
  4834.     specify the standard colors (BL=01h,BH=09h) to enable underline or
  4835.       strikeout without color remapping
  4836. SeeAlso: AX=CD08h
  4837. --------V-10CD08-----------------------------
  4838. INT 10 - VIDEO - UltraVision v1.2+ - GET UNDERLINE STATUS (EGA,VGA)
  4839.     AX = CD08h
  4840. Return: CL = hardware underline status (see AX=CD07h)
  4841.     BL = foreground color for normal text
  4842.     BH = foreground color for bright text
  4843. Note:    only CL is valid on monochrome EGA systems
  4844. SeeAlso: AX=CD07h
  4845. --------V-10CD10-----------------------------
  4846. INT 10 - VIDEO - UltraVision - LOAD USER FONT (EGA,VGA)
  4847.     AX = CD10h
  4848.     BH = bytes per character (08h,0Ah,0Bh,0Eh,13h,14h)
  4849.     CX = ABCDh load 9xN alternate font (v2+)
  4850.        else number of characters to load
  4851.         DX = character offset into font table
  4852.         DS:SI -> 8-byte ASCII font name
  4853.     ES:BP -> font definitions
  4854. Return: AX = FFFFh if invalid font parameters
  4855. Notes:    loads the designated characters into UltraVision's resident font area
  4856.     should be followed by a video mode set to reload character generator
  4857. SeeAlso: AX=1100h
  4858. --------V-10CD-------------------------------
  4859. INT 10 - VIDEO - UltraVision - SET ULTRAVISION TEXT MODE (EGA,VGA)
  4860.     AH = CDh
  4861.     AL = text mode number (see AX=CD04h)
  4862. Return: AX = CDCDh if invalid mode
  4863. SeeAlso: AX=CD04h
  4864. --------A-10D0-------------------------------
  4865. INT 10 - CU Writer v1.4 - LOAD PICTURE
  4866.     AH = D0h
  4867.     ???
  4868. Return: ???
  4869. SeeAlso: AH=B0h"CU Writer",AH=C4h
  4870. --------V-10D5-------------------------------
  4871. INT 10 - Netroom SCRNCLK - ???
  4872.     AH = D5h
  4873.     ???
  4874. Return: ???
  4875. Program: SCRNCLK is a "cloaked" screen accelerator included with Netroom
  4876. --------V-10DFA5-----------------------------
  4877. INT 10 U - VIDEO - Compaq ADAPT.COM - GET ??? DATA AREA
  4878.     AX = DFA5h
  4879. Return: AX = BDBFh if supported
  4880.         ES:DI -> ??? data area
  4881.         BX = ES
  4882. SeeAlso: AX=BFA0h
  4883. --------V-10EF-------------------------------
  4884. INT 10 - VIDEO - MSHERC.COM - GET VIDEO ADAPTER TYPE AND MODE
  4885.     AH = EFh
  4886. Return: DL = video adapter type
  4887.         00h original Hercules
  4888.         01h Hercules Plus
  4889.         02h Hercules InColor???
  4890.     DH = memory mode byte
  4891.         01h "half" mode
  4892.         03h "full" mode
  4893. Program: MSHERC.COM is a support program for the Microsoft Quick languages which
  4894.       makes their graphics libraries compatible with a Hercules card by
  4895.       adding video modes 08h and 88h, and supporting text in the new
  4896.       graphics modes.
  4897. Notes:    while in mode 08h or 88h, INT 10 supports the Hercules card much like
  4898.       a CGA.
  4899.     MSHERC performs an installation check by setting DL=FFh and testing
  4900.       whether it has been changed on return
  4901. Index:    installation check;MSHERC
  4902. --------V-10F0-------------------------------
  4903. INT 10 - EGA Register Interface Library - READ ONE REGISTER
  4904.     AH = F0h
  4905.     BL = register number
  4906.     BH = 00h
  4907.     DX = group index
  4908.         Pointer/data chips
  4909.            00h CRT Controller (25 reg) 3B4h mono modes, 3D4h color modes
  4910.            08h Sequencer (5 registers) 3C4h
  4911.            10h Graphics Controller (9 registers) 3CEh
  4912.            18h Attribute Controller (20 registers) 3C0h
  4913.         Single registers
  4914.            20h Miscellaneous Output register 3C2h
  4915.            28h Feature Control register (3BAh mono modes, 3DAh color modes)
  4916.            30h Graphics 1 Position register 3CCh
  4917.            38h Graphics 2 Position register 3CAh
  4918. Return: BL = data
  4919. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  4920.       compatibility box, and others
  4921. SeeAlso: AH=F1h,AH=F2h,INT 2F/AX=BC00h
  4922. --------V-10F1-------------------------------
  4923. INT 10 - EGA Register Interface Library - WRITE ONE REGISTER
  4924.     AH = F1h
  4925.     DX = group index (see AH=F0h)
  4926.         if single register:
  4927.         BL = value to write
  4928.         otherwise
  4929.         BL = register number
  4930.         BH = value to write
  4931. Return: BL = data
  4932. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  4933.       compatibility box, and others
  4934. SeeAlso: AX=7F05h,AH=F0h,AH=F3h
  4935. --------V-10F2-------------------------------
  4936. INT 10 - EGA Register Interface Library - READ REGISTER RANGE
  4937.     AH = F2h
  4938.     CH = starting register number
  4939.     CL = Number of registers (>1)
  4940.     DX = group index
  4941.          00h CRTC (3B4h mono modes, 3D4h color modes)
  4942.          08h Sequencer 3C4h
  4943.          10h Graphics Controller 3CEh
  4944.          18h Attribute Controller 3C0h
  4945.     ES:BX -> buffer, CL bytes
  4946. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  4947.       compatibility box, and others
  4948. SeeAlso: AH=F0h,AH=F3h
  4949. --------V-10F3-------------------------------
  4950. INT 10 - EGA Register Interface Library - WRITE REGISTER RANGE
  4951.     AH = F3h
  4952.     CH = starting register
  4953.     CL = number of registers (>1)
  4954.     DX = group index (see AH=F2h)
  4955.     ES:BX -> buffer, CL bytes
  4956. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  4957.       compatibility box, and others
  4958. SeeAlso: AX=7F05h,AH=F1h,AH=F2h
  4959. --------V-10F4-------------------------------
  4960. INT 10 - EGA Register Interface Library - READ REGISTER SET
  4961.     AH = F4h
  4962.     CX = number of registers to read (>1)
  4963.     ES:BX -> table of records (see below)
  4964. Return: register values in table filled in
  4965. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  4966.       compatibility box, and others
  4967. SeeAlso: AH=F0h,AH=F2h,AH=F5h
  4968.  
  4969. Format of entries in table of register records:
  4970. Offset    Size    Description
  4971.  00h    WORD    group index
  4972.         Pointer/data chips
  4973.            00h CRTC (3B4h mono modes, 3D4h color modes)
  4974.            08h Sequencer 3C4h
  4975.            10h Graphics Controller 3CEh
  4976.            18h Attribute Controller 3C0h
  4977.         Single registers
  4978.            20h Miscellaneous Output register 3C2h
  4979.            28h Feature Control register (3BAh mono modes, 3DAh color)
  4980.            30h Graphics 1 Position register 3CCh
  4981.            38h Graphics 2 Position register 3CAh
  4982.  02h    BYTE    register number (0 for single registers)
  4983.  03h    BYTE    register value
  4984. --------V-10F5-------------------------------
  4985. INT 10 - EGA Register Interface Library - WRITE REGISTER SET
  4986.     AH = F5h
  4987.     CX = number of registers to write (>1)
  4988.     ES:BX -> table of records (see AH=F4h)
  4989. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  4990.       compatibility box, and others
  4991. SeeAlso: AX=7F05h,AH=F1h,AH=F3h,AH=F4h
  4992. --------V-10F6-------------------------------
  4993. INT 10 - EGA Register Interface Library - REVERT TO DEFAULT REGISTERS
  4994.     AH = F6h
  4995. Note:    provided by the Microsoft Mouse driver, OS/2 compatibility box, and
  4996.       others
  4997. SeeAlso: AH=F7h
  4998. --------V-10F7-------------------------------
  4999. INT 10 - EGA Register Interface Library - DEFINE DEFAULT REGISTER TABLE
  5000.     AH = F7h
  5001.     DX = port number
  5002.        Pointer/data chips
  5003.           00h CRTC (3B4h mono modes, 3D4h color modes)
  5004.           08h Sequencer 3C4h
  5005.           10h Graphics Controller 3CEh
  5006.           18h Attribute Controller 3C0h
  5007.        Single registers
  5008.           20h Miscellaneous Output register 3C2h
  5009.           28h Feature Control register (3BAh mono modes, 3DAh color modes)
  5010.           30h Graphics 1 Position register 3CCh
  5011.           38h Graphics 2 Position register 3CAh
  5012.     ES:BX -> table of one-byte entries, one byte to be written to each
  5013.          register
  5014. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5015.       compatibility box, and others
  5016. SeeAlso: AH=F6h
  5017. --------V-10FA--BX0000-----------------------
  5018. INT 10 - EGA Register Interface Library - INTERROGATE DRIVER
  5019.     AH = FAh
  5020.     BX = 0000h
  5021. Return: BX = 0000h if RIL driver not present
  5022.     ES:BX -> EGA Register Interface version number, if present:
  5023.         byte 0 = major release number
  5024.         byte 1 = minor release number
  5025. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5026.       compatibility box, and others
  5027. SeeAlso: AH=F6h,INT 2F/AX=BC00h
  5028. --------K-10FA-------------------------------
  5029. INT 10 - FASTBUFF.COM - INSTALLATION CHECK
  5030.     AH = FAh
  5031. Return: AX = 00FAh if installed
  5032.         ES = segment of resident code
  5033. Program: FASTBUFF.COM is a keyboard speedup/screen blanking utility by David
  5034.       Steiner
  5035. Index:    screen saver;FASTBUFF
  5036. --------V-10FE-------------------------------
  5037. INT 10 - TopView - GET SHADOW BUFFER
  5038.     AH = FEh
  5039.     ES:DI -> assumed video buffer
  5040.         B800h:0000h color text/CGA graphics, B000h:0000h mono text,
  5041.           or A000h:0000h EGA/VGA graphics (RSIS environments only)
  5042. Return: ES:DI -> actual video buffer for calling process
  5043. Desc:    Determine the address of the virtual screen to which the program
  5044.       should write instead of the actual video memory; this permits
  5045.       programs to be multitasked without interfering with each other's
  5046.       output, and allows memory managers to move the video memory to
  5047.       permit larger programs to be loaded.
  5048. Notes:    if no multitasker or RSIS-compliant environment is installed, ES:DI is
  5049.       returned unchanged; RSIS is the Relocated Screen Interface
  5050.       Specification
  5051.     for display pages other than 0, use AH=05h and AH=0Fh to determine
  5052.       whether a particular page exists
  5053.     TopView requires a call to AH=FFh to notify it that the screen has
  5054.       changed; DESQview will check for changes itself until the first call
  5055.       to AH=FFh
  5056. SeeAlso: AH=05h,AX=5201h,AH=FFh,INT 15/AX=1024h,INT 21/AH=2Bh"DESQview"
  5057. SeeAlso: INT 21/AH=ECh"DoubleDOS"
  5058. --------V-10FF-------------------------------
  5059. INT 10 - TopView - UPDATE SCREEN FROM SHADOW BUFFER
  5060.     AH = FFh
  5061.     CX = number of consecutive changed characters
  5062.     ES:DI -> first changed character in shadow buffer
  5063. Notes:    avoid CX=0000h
  5064.     DESQview will discontinue the automatic screen updating initiated by
  5065.       AH=FEh after this call
  5066.     not supported (ignored) by DESQview/X 1.0x
  5067. SeeAlso: AH=93h,AH=FEh
  5068. --------E-10FF-------------------------------
  5069. INT 10 - DJ GO32.EXE 80386+ DOS extender - VIDEO EXTENSIONS
  5070.     AH = FFh
  5071.     AL = video mode (see below)
  5072. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  5073.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  5074. SeeAlso: AH=00h,INT 21/AH=FFh"GO32"
  5075.  
  5076. Values for video mode number:
  5077.  00h    80x25 text
  5078.  01h    default text
  5079.  02h    CXxDX text
  5080.  03h    biggest text
  5081.  04h    320x200 graphics
  5082.  05h    default graphics
  5083.  06h    CXxDX graphics
  5084.  07h    biggest non-interlaced graphics
  5085.  08h    biggest graphics
  5086. Index:    video modes
  5087. --------V-10FF-------------------------------
  5088. INT 10 - VIDEO - Oak VGA BIOS v1.02+ - SET EMULATION
  5089.     AH = FFh
  5090.     AL = emulation
  5091.         43h ('C') CGA emulation
  5092.         45h ('E') EGA emulation
  5093.         4Dh ('M') Hercules emulation
  5094.         56h ('V') VGA emulation
  5095.     ES:DI -> signature string "Calamity"
  5096. Return: VGA switched to suggested mode
  5097. SeeAlso: AH=00h,AX=007Fh,AX=5F01h
  5098. --------R-10FF00-----------------------------
  5099. INT 10 - CARBON COPY PLUS v5.0 - CHECK IF CC CONNECTED TO CCHELP
  5100.     AX = FF00h
  5101. Return: BL = 00h not connected
  5102.        = 01h connected
  5103. SeeAlso: AX=FF01h,AX=FF02h
  5104. --------R-10FF01-----------------------------
  5105. INT 10 - CARBON COPY PLUS v5.0 - DISCONNECT AND RESET LINE
  5106.     AX = FF01h
  5107. SeeAlso: AX=FF00h,AX=FF02h
  5108. --------R-10FF02-----------------------------
  5109. INT 10 - CARBON COPY PLUS v5.0 - GET LAST PHONE NUMBER DIALED
  5110.     AX = FF02h
  5111. Return: ES:DI -> ASCIZ phone number
  5112. SeeAlso: AX=FF00h,AX=FF01h
  5113. --------C-11---------------------------------
  5114. INT 11 - CPU-generated (80486+) - ALIGNMENT CHECK
  5115. Desc:    automatically generated by the CPU when the AC flag is set, the current
  5116.       privilege level is 3, and a misaligned memory access (WORD not on an
  5117.       even address or DWORD not on a multiple of 4) is made
  5118. Note:    not all V86 monitors allow the AC flag to be set, such as Turbo
  5119.       Debugger 386
  5120. --------B-11---------------------------------
  5121. INT 11 - BIOS - GET EQUIPMENT LIST
  5122. Return: AX = BIOS equipment list word
  5123.         bits
  5124.         0      floppy disk(s) installed (see bits 6-7)
  5125.         1      80x87 coprocessor installed
  5126.         2,3      number of 16K banks of RAM on motherboard (PC only)
  5127.           number of 64K banks of RAM on motherboard (XT only)
  5128.         2      pointing device installed (PS)
  5129.         3      unused (PS)
  5130.         4-5      initial video mode
  5131.           00 EGA, VGA, or PGA
  5132.           01 40x25 color
  5133.           10 80x25 color
  5134.           11 80x25 monochrome
  5135.         6-7      number of floppies installed less 1 (if bit 0 set)
  5136.         8      DMA support installed (PCjr, some Tandy 1000s, 1400LT)
  5137.         9-11  number of serial ports installed
  5138.         12      game port installed
  5139.         13      serial printer attached (PCjr)
  5140.           internal modem installed (PC/Convertible)
  5141.         14-15 number of parallel ports installed
  5142. ---Compaq and many other 386/486 machines--
  5143.     EAX bit 23: page tables set so that Weitek coprocessor addressable in
  5144.             real mode
  5145.         bit 24: Weitek math coprocessor present
  5146. ---Compaq Systempro
  5147.     EAX bit 25: internal DMA parallel port available
  5148.         26: IRQ for internal DMA parallel port (if bit 25 set)
  5149.             0 = IRQ5
  5150.             1 = IRQ7
  5151.          27,28: parallel port DMA channel
  5152.             00 DMA channel 0
  5153.             01 DMA channel 0 ???
  5154.             10 reserved
  5155.             11 DMA channel 3
  5156. SeeAlso: INT 12
  5157. --------d-11----SI6A6A-----------------------
  5158. INT 11 - Columbia Data Products Standard Device Level Protocol (SDLP) 1.6
  5159.     SI = 6A6Ah
  5160.     AH = command (see below)
  5161.     AL = SCSI Addressing
  5162.         bits 2-0 SCSI Target LUN (logical unit number)
  5163.         bits 5-3 SCSI Target ID
  5164.         bits 7-6 Host Adapter
  5165. Return: CF clear if successful
  5166.         DI = 6A6Ah if AH=01h on entry (maybe for all functions???)
  5167.         AH = ??? for command 01h
  5168.     CF set on error
  5169.         AL = error code
  5170. SeeAlso: INT 21/AX=4402h"ASPI"
  5171.  
  5172. Values for SDLP command:
  5173.  00h    SDLP initialization
  5174.  01h    SDLP System Identify
  5175.  02h    simple read sectors
  5176.  03h    simple write sectors
  5177.  04h    simple verify sectors/seek to sector
  5178.  05h    get device size/type
  5179.  06h    ready unit
  5180.  07h    format unit
  5181.  08h    diagnostics
  5182.  09h    rewind
  5183.  0Ah    erase
  5184.  0Bh    write filemarks
  5185.  0Ch    space
  5186.  0Dh    prevent/allow media removal
  5187.  0Eh    load/unload media
  5188.  0Fh    reserved - returns good status
  5189.  10h    set block size
  5190.  11h    write setmark
  5191.  12h    set error level
  5192.  13h    get address of Request Sense Buffer
  5193.  14h    get SDLP error via Request Sense
  5194.  F0h    Vendor Unique Function (WD7000-FASST2 only)
  5195.  FDh    reset current SCSI HAC
  5196.  FEh    get/set current SCSI HAC
  5197.  FFh    execute SCSI command
  5198. ----------110225BX6900-----------------------
  5199. INT 11 - Blank-It Screen Blanker - INSTALLATION CHECK
  5200.     AX = 0225h
  5201.     BX = 6900h
  5202. Return: BL = 23h
  5203.     ES:DI -> ASCIZ "BLNKIT"
  5204. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  5205.       Inc.
  5206. SeeAlso: AX=0225h/BX=6902h,AX=0225h/BX=6908h,AX=0225h/BX=6909h
  5207. Index:    screen saver;Blank-It
  5208. ----------110225BX6901-----------------------
  5209. INT 11 - Blank-It Screen Blanker - SET TIMEOUT FOR SCREEN BLANKING
  5210.     AX = 0225h
  5211.     BX = 6901h
  5212.     CX = timeout in timer ticks (18.2/second) or 0000h to disable timeout
  5213.          largest value is 59 minutes (FBACh or 64428)
  5214. Return: CF clear if successful
  5215.         DI = 6A6Ah (possibly also 6A6Ah for all following functions)
  5216.         AH = ???
  5217.     CF set on error
  5218.         AL = error code
  5219. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6904h
  5220. Index:    screen saver;Blank-It
  5221. ----------110225BX6902-----------------------
  5222. INT 11 - Blank-It Screen Blanker - ENABLE THE SOFTWARE
  5223.     AX = 0225h
  5224.     BX = 6902h
  5225. Return: CF clear if successful
  5226.     CF set on error
  5227.         AL = error code
  5228. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6903h
  5229. Index:    screen saver;Blank-It
  5230. ----------110225BX6903-----------------------
  5231. INT 11 - Blank-It Screen Blanker - DISABLE THE SOFTWARE
  5232.     AX = 0225h
  5233.     BX = 6903h
  5234. Return: CF clear if successful
  5235.     CF set on error
  5236.         AL = error code
  5237. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6902h
  5238. Index:    screen saver;Blank-It
  5239. ----------110225BX6904-----------------------
  5240. INT 11 - Blank-It Screen Blanker - GET BLANKING TIMEOUT
  5241.     AX = 0225h
  5242.     BX = 6904h
  5243. Return: CF clear if successful
  5244.         BX = timeout (see BX=6901h)
  5245.     CF set on error
  5246.         AL = error code
  5247. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6901h
  5248. Index:    screen saver;Blank-It
  5249. ----------110225BX6905-----------------------
  5250. INT 11 - Blank-It Screen Blanker - ENABLE WINDOWS COMPATIBILITY MODE
  5251.     AX = 0225h
  5252.     BX = 6905h
  5253. Return: CF clear if successful
  5254.     CF set on error
  5255.         AL = error code
  5256. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6906h
  5257. Index:    screen saver;Blank-It
  5258. ----------110225BX6906-----------------------
  5259. INT 11 - Blank-It Screen Blanker - DISABLE WINDOWS COMPATIBILITY MODE
  5260.     AX = 0225h
  5261.     BX = 6906h
  5262. Return: CF clear if successful
  5263.     CF set on error
  5264.         AL = error code
  5265. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  5266.       Inc.
  5267. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6905h
  5268. Index:    screen saver;Blank-It
  5269. ----------110225BX6907-----------------------
  5270. INT 11 - Blank-It Screen Blanker - UNBLANK THE SCREEN
  5271.     AX = 0225h
  5272.     BX = 6907h
  5273. Return: CF clear if successful
  5274.     CF set on error
  5275.         AL = error code
  5276. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6908h
  5277. Index:    screen saver;Blank-It
  5278. ----------110225BX6908-----------------------
  5279. INT 11 - Blank-It Screen Blanker - BLANK THE SCREEN
  5280.     AX = 0225h
  5281.     BX = 6908h
  5282. Return: CF clear if successful
  5283.     CF set on error
  5284.         AL = error code
  5285. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6907h
  5286. Index:    screen saver;Blank-It
  5287. ----------110225BX6909-----------------------
  5288. INT 11 - Blank-It Screen Blanker - SET HOTKEY FOR MANUAL BLANKING
  5289.     AX = 0225h
  5290.     BX = 6909h
  5291.     CL = key scan code (see below)
  5292. Return: CF clear if successful
  5293.     CF set on error
  5294.         AL = error code
  5295. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  5296.       Inc.
  5297. SeeAlso: AX=0225h/BX=6900h
  5298. Index:    screen saver;Blank-It|hotkeys;Blank-It
  5299.  
  5300. Values for key scan code:
  5301.  00h    No hot key
  5302.  1Dh    Left CTRL
  5303.  2Ah    Left Shift
  5304.  36h    Right Shift
  5305.  57h    F11
  5306.  58h    F12
  5307. ----------1105D7-----------------------------
  5308. INT 11 CU - Borland C++ IDE - INSTALLED CALLOUT
  5309.     AX = 05D7h
  5310.     BX = product ID (0088h)
  5311. Note:    called by the BC++ IDE when an application calls
  5312.       INT 12/AX=05D7h/BX=05D7h
  5313. SeeAlso: INT 12/AX=05D7h/BX=05D7h
  5314. Index:    installation check;Borland C++ IDE
  5315. --------F-1177-------------------------------
  5316. INT 11 - RainbowFAX v1.3 - SFENGINE API - OPERATIONAL CONTROL
  5317.     AH = 77h
  5318.     AL = subfunction
  5319.         01h request SFENGINE start
  5320.         Return: AX = 0001h
  5321.         02h check if SFENGINE started
  5322.         Return: AX = 0000h or 0001h
  5323.         03h request SFENGINE stop
  5324.         Return: AX = 0001h
  5325.         04h check if SFENGINE stopped
  5326.         Return: AX = 0000h or 0001h
  5327.         05h installation check
  5328.         Return: AX = 0001h
  5329.         06h uninstall???
  5330.         BX:DX -> return address for successful uninstall???
  5331.         Return: (at caller's address)
  5332.             AX = 0000h
  5333.         else
  5334.         Return: AX = FFFFh
  5335. Return: ES:DX -> ASCIZ signature string "SFAX ENGINE V1.0"
  5336.         followed by internal data area???
  5337. SeeAlso: AH=78h,AH=79h,AH=7Ah,AH=7Ch
  5338. Index:    installation check;RainboxFAX|installation check;SFENGINE
  5339. Index:    uninstall;RainboxFAX|uninstall;SFENGINE
  5340. --------F-1178-------------------------------
  5341. INT 11 - RainboxFAX v1.3 - SFENGINE API - ???
  5342.     AH = 78h
  5343.     AL = subfunction
  5344.         7801h set ???
  5345.         BX = new state for ???
  5346.             0000h ???
  5347.             else ???
  5348.         Return: AX = 0001h
  5349.         7802h set ???
  5350.         BX = ???
  5351.         CX = ???
  5352.         Return: AX = 0001h
  5353.         7803h set ???
  5354.         BX = new state for ???
  5355.             0000h ???
  5356.             else ???
  5357.         Return: AX = 0001h
  5358.         78XXh invalid subfunction
  5359.         Return: AX = FFFFh
  5360. SeeAlso: AH=77h,AH=79h,AH=7Ah,AH=7Ch
  5361. --------F-1179-------------------------------
  5362. INT 11 - RainboxFAX v1.3 - SFENGINE API - ???
  5363.     AH = 79h
  5364.     AL = subfunction
  5365.         01h set ??? flag
  5366.         Return: AX = previous state (0000h already set, 0001h clear)
  5367.         02h clear ??? flag (see subfunc 01h)
  5368.         Return: AX = 0001h
  5369.         03h set ??? flag (different from subfn 02h or 04h)
  5370.         Return: AX = 0001h
  5371.         04h clear ??? flag (different from subfn 02h or 03h)
  5372.         Return: AX = 0001h
  5373.         else
  5374.         Return: AX = FFFFh
  5375. SeeAlso: AH=77h,AH=78h,AH=7Ah,AH=7Ch
  5376. --------F-117A-------------------------------
  5377. INT 11 - RainboxFAX v1.3 - SFENGINE API - ???
  5378.     AH = 7Ah
  5379.     AL = subfunction
  5380.         01h set ??? flag
  5381.         Return: AX = previous state (0000h already set, 0001h clear)
  5382.         02h clear ??? flag
  5383.         Return: AX = 0001h
  5384.         03h set ??? flag (different from subfn 02h)
  5385.         Return: AX = 0001h
  5386.         else
  5387.         Return: AX = FFFFh
  5388. SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ch
  5389. --------F-117C-------------------------------
  5390. INT 11 - RainboxFAX v1.3 - SFENGINE API - ???
  5391.     AH = 7Ch
  5392.     AL = subfunction
  5393.         01h set ??? flag (see also subfn 02h)
  5394.         Return: AX = 0001h
  5395.         02h clear ??? flag (see also subfn 01h)
  5396.         Return: AX = 0001h
  5397.         else
  5398.         Return: AX = FFFFh
  5399. SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ah
  5400. --------S-11BC--DX1954-----------------------
  5401. INT 11 - BNU FOSSIL - INSTALLATION CHECK
  5402.     AH = BCh
  5403.     DX = 1954h
  5404. Return: AX = 1954h
  5405.     ES:DX -> entry point of driver (instead of INT 14)
  5406. SeeAlso: INT 14/AH=04h"FOSSIL"
  5407. --------d-11FF--SI6A6A-----------------------
  5408. INT 11 - WD7000 SDLP interface - EXECUTE GENERIC SCSI COMMAND
  5409.     AH = FFh
  5410.     SI = 6A6Ah
  5411.     AL = SCSI Addressing
  5412.         bits 2-0 SCSI Target LUN (logical unit number)
  5413.         bits 5-3 SCSI Target ID
  5414.         bit 7    write flag, set for write operations, clear otherwise
  5415.     CX = bytes of data to be transmitted (max FFF0h)
  5416.     DH = 00h
  5417.     DL = length of SCSI Command Descriptor Block
  5418.     DS:DI -> SCSI Command Descriptor Block
  5419.     ES:BX -> data buffer
  5420. Return: CF set on error
  5421.         AL = error code
  5422.     CF clear if successful
  5423. Note:    because of busmaster operations with WD7000FASST avoid accessing
  5424.       video memory directly; check 386 memory manager for VDS support.
  5425.       The WD7000XTAT works with programmed IO and does not have this
  5426.       limitation.
  5427. SeeAlso: INT 21/AX=4402h"ASPI",INT 2F/AX=7F01h
  5428. --------T-11FFFECXFFFE-----------------------
  5429. INT 11 - BACK&FORTH (before v1.62) API
  5430.     AX = FFFEh
  5431.     CX = FFFEh
  5432.     BX = function
  5433.         00h installation check
  5434.         Return: AX = 0001h BNFHIGH and BNFLOW both loaded
  5435.                = 0003h only BNFHIGH loaded
  5436.                else neither loaded
  5437.         01h ???
  5438.         Return: DX:AX -> ???
  5439.         02h ???
  5440.         03h ???
  5441.         04h ???
  5442.         05h ??? switches current PSP segment and stack if BNFLOW has not
  5443.             yet announced itself installed
  5444.         06h ???
  5445.         Return: AX = ???
  5446. SeeAlso: INT 12/AX=FFFEh
  5447. Index:    installation check;BACK&FORTH
  5448. --------B-12---------------------------------
  5449. INT 12 - BIOS - GET MEMORY SIZE
  5450. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  5451. Note:    this call returns the contents of the word at 0040h:0013h; in PC and
  5452.       XT, this value is set from the switches on the motherboard
  5453. SeeAlso: INT 11,INT 2F/AX=4A06h
  5454. --------K-12----CX1806-----------------------
  5455. INT 12 - KEYBUI v2.0+ - INSTALLATION CHECK
  5456.     CX = 1806h
  5457. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  5458.     CX = 1960h if installed
  5459. Program: KEYBUI is a resident keyboard driver by Johan Zwiekhorst which allows
  5460.       accented characters and box drawing on standard QWERTY keyboards; it
  5461.       also provides break-to-DOS and screen blanking capabilities
  5462. Index:    screen saver;KEYBUI
  5463. --------d-12----CX1807-----------------------
  5464. INT 12 - PARKER v2.0+ - INSTALLATION CHECK
  5465.     CX = 1807h
  5466. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  5467.     CX = 1961h if installed
  5468. Program: PARKER is an optionally-resident hard disk parking program by Johan
  5469.       Zwiekhorst
  5470. ----------1205D7BX05D7-----------------------
  5471. INT 12 U - Borland C++ IDE - INSTALLATION CHECK
  5472.     AX = 05D7h (1495d)
  5473.     BX = 05D7h
  5474. Note:    the BC++ IDE will call INT 11/AX=05D7h/BX=0088h if it is loaded
  5475. SeeAlso: INT 11/AX=05D7h/BX=0088h
  5476. --------T-12FFFECXFFFE-----------------------
  5477. INT 12 - Back&Forth v1.62+ - API
  5478.     AX = FFFEh
  5479.     CX = FFFEh
  5480.     BX = function
  5481.         00h installation check
  5482.         Return: AX = 0001h installed
  5483.                  else  not loaded
  5484.         02h build program ID list
  5485.         ES:DI -> buffer of at least 100 bytes, to be filled with words
  5486.         Return: AX = number of programs defined
  5487.             ES:DI buffer filled with AX words
  5488.         03h switch to specified task (task need not be open yet)
  5489.         DX = two-letter program ID
  5490.         Return: AX = 0000h if task undefined
  5491.         04h ???
  5492.         05h ???
  5493.         06h get version (undoc)
  5494.         Return: AX = version * 100 (v1.71 = 00ABh)
  5495.         07h ???
  5496.         08h get open tasks (undoc)
  5497.         ES:DI -> task info buffer (see below)
  5498.         Return: AX = number of open tasks (max 20)
  5499.         09h ???
  5500. Program: Back & Forth is a task switcher by Progressive Solutions, Inc.
  5501. SeeAlso: INT 11/AX=FFFEh
  5502. Index:    installation check;BACK&FORTH
  5503.  
  5504. Format of task info buffer:
  5505. Offset    Size    Description
  5506.  00h 21 BYTEs    ASCIZ task name
  5507.  15h    BYTE    hotkey shift state (as for INT 16/AH=02h)
  5508.  16h    WORD    hotkey scan code
  5509.  18h    WORD    program ID
  5510. Index:    hotkeys;Back&Forth
  5511. --------B-1300-------------------------------
  5512. INT 13 - DISK - RESET DISK SYSTEM
  5513.     AH = 00h
  5514.     DL = drive (if bit 7 is set both hard disks and floppy disks reset)
  5515. Return: AH = status (see AH=01h)
  5516.     CF clear if successful (returned AH=00h)
  5517.     CF set on error
  5518. Note:    forces controller to recalibrate drive heads (seek to track 0)
  5519. SeeAlso: AH=0Dh,AH=11h,INT 21/AH=0Dh,INT 4E"TI Professional"
  5520. --------B-1301-------------------------------
  5521. INT 13 - DISK - GET STATUS OF LAST OPERATION
  5522.     AH = 01h
  5523.     DL = drive (bit 7 set for hard disk)
  5524. Return: CF clear if successful (returned status 00h)
  5525.     CF set on error
  5526.     AH = status of previous operation (see below)
  5527. Note:    some BIOSes return the status in AL; the PS/2 Model 30/286 returns the
  5528.       status in both AH and AL
  5529.  
  5530. Values for status:
  5531.  00h    successful completion
  5532.  01h    invalid function in AH or invalid parameter
  5533.  02h    address mark not found
  5534.  03h    disk write-protected
  5535.  04h    sector not found/read error
  5536.  05h    reset failed (hard disk)
  5537.  06h    disk changed (floppy)
  5538.  07h    drive parameter activity failed (hard disk)
  5539.  08h    DMA overrun
  5540.  09h    attempted DMA across 64K boundary
  5541.  0Ah    bad sector detected (hard disk)
  5542.  0Bh    bad track detected (hard disk)
  5543.  0Ch    unsupported track or invalid media
  5544.  0Dh    invalid number of sectors on format (hard disk)
  5545.  0Eh    control data address mark detected (hard disk)
  5546.  0Fh    DMA arbitration level out of range (hard disk)
  5547.  10h    uncorrectable CRC or ECC error on read
  5548.  11h    data ECC corrected (hard disk)
  5549.  20h    controller failure
  5550.  40h    seek failed
  5551.  80h    timeout (not ready)
  5552.  AAh    drive not ready (hard disk)
  5553.  BBh    undefined error (hard disk)
  5554.  CCh    write fault (hard disk)
  5555.  E0h    status register error (hard disk)
  5556.  FFh    sense operation failed (hard disk)
  5557. --------B-1302-------------------------------
  5558. INT 13 - DISK - READ SECTOR(S) INTO MEMORY
  5559.     AH = 02h
  5560.     AL = number of sectors to read (must be nonzero)
  5561.     CH = low eight bits of cylinder number
  5562.     CL = sector number 1-63 (bits 0-5)
  5563.          high two bits of cylinder (bits 6-7, hard disk only)
  5564.     DH = head number
  5565.     DL = drive number (bit 7 set for hard disk)
  5566.     ES:BX -> data buffer
  5567. Return: CF set on error
  5568.         if AH = 11h (corrected ECC error), AL = burst length
  5569.     CF clear if successful
  5570.     AH = status (see AH=01h)
  5571.     AL = number of sectors transferred
  5572. Notes:    errors on a floppy may be due to the motor failing to spin up quickly
  5573.       enough; the read should be retried at least three times, resetting
  5574.       the disk with AH=00h between attempts
  5575.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  5576.       DH (head number) since the WD-1003 controller which is the standard
  5577.       AT controller (and the controller that IDE emulates) only supports
  5578.       16 heads
  5579.     AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  5580.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  5581.       into bits 6 and 7 of DH
  5582. SeeAlso: AH=03h,AH=0Ah
  5583. --------B-1303-------------------------------
  5584. INT 13 - DISK - WRITE DISK SECTOR(S)
  5585.     AH = 03h
  5586.     AL = number of sectors to write (must be nonzero)
  5587.     CH = low eight bits of cylinder number
  5588.     CL = sector number 1-63 (bits 0-5)
  5589.          high two bits of cylinder (bits 6-7, hard disk only)
  5590.     DH = head number
  5591.     DL = drive number (bit 7 set for hard disk)
  5592.     ES:BX -> data buffer
  5593. Return: CF set on error
  5594.     CF clear if successful
  5595.     AH = status (see AH=01h)
  5596.     AL = number of sectors transferred
  5597. Notes:    errors on a floppy may be due to the motor failing to spin up quickly
  5598.       enough; the write should be retried at least three times, resetting
  5599.       the disk with AH=00h between attempts
  5600.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  5601.       DH (head number) since the WD-1003 controller which is the standard
  5602.       AT controller (and the controller that IDE emulates) only supports
  5603.       16 heads
  5604.     AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  5605.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  5606.       into bits 6 and 7 of DH
  5607. SeeAlso: AH=02h,AH=0Bh
  5608. --------B-1304-------------------------------
  5609. INT 13 - DISK - VERIFY DISK SECTOR(S)
  5610.     AH = 04h
  5611.     AL = number of sectors to verify (must be nonzero)
  5612.     CH = low eight bits of cylinder number
  5613.     CL = sector number 1-63 (bits 0-5)
  5614.          high two bits of cylinder (bits 6-7, hard disk only)
  5615.     DH = head number
  5616.     DL = drive number (bit 7 set for hard disk)
  5617.     ES:BX -> data buffer (PC,XT,AT with BIOS prior to 11/15/85)
  5618. Return: CF set on error
  5619.     CF clear if successful
  5620.     AH = status (see AH=01h)
  5621.     AL = number of sectors verified
  5622. Notes:    errors on a floppy may be due to the motor failing to spin up quickly
  5623.       enough; the write should be retried at least three times, resetting
  5624.       the disk with AH=00h between attempts
  5625.     this function does not compare the disk with memory, it merely
  5626.       checks whether the sector's stored CRC matches the data's actual CRC
  5627.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  5628.       DH (head number) since the WD-1003 controller which is the standard
  5629.       AT controller (and the controller that IDE emulates) only supports
  5630.       16 heads
  5631.     AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  5632.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  5633.       into bits 6 and 7 of DH
  5634. SeeAlso: AH=02h
  5635. --------B-1305-------------------------------
  5636. INT 13 - FLOPPY - FORMAT TRACK
  5637.     AH = 05h
  5638.     AL = number of sectors to format
  5639.     CH = track number
  5640.     DH = head number
  5641.     DL = drive number
  5642.     ES:BX -> address field buffer (see below)
  5643. Return: CF set on error
  5644.     CF clear if successful
  5645.     AH = status (see AH=01h)
  5646. Notes:    on AT or higher, call AH=17h first
  5647.     the number of sectors per track is read from the diskette parameter
  5648.       table pointed at by INT 1E
  5649. SeeAlso: AH=05h"FIXED",AH=17h,AH=18h,INT 1E
  5650.  
  5651. Format of address field buffer entry (one per sector in track):
  5652. Offset    Size    Description
  5653.  00h    BYTE    track number
  5654.  01h    BYTE    head number (0-based)
  5655.  02h    BYTE    sector number
  5656.  03h    BYTE    sector size (00h=128 bytes, 01h=256 bytes, 02h=512, 03h=1024)
  5657. --------B-1305-------------------------------
  5658. INT 13 - FIXED DISK - FORMAT TRACK
  5659.     AH = 05h
  5660.     AL = interleave value (XT-type controllers only)
  5661.     ES:BX -> 512-byte format buffer
  5662.         the first 2*(sectors/track) bytes contain F,N for each sector
  5663.            F = 00h for good sector, 80h for bad sector
  5664.            N = sector number
  5665.     CH = cylinder number (bits 8,9 in high bits of CL)
  5666.     CL = high bits of cylinder number (bits 7,6)
  5667.     DH = head
  5668.     DL = drive
  5669. Return: AH = status code (see AH=01h)
  5670. Notes:    AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  5671.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  5672.       into bits 6 and 7 of DH
  5673.     for XT-type controllers on an AT or higher, AH=0Fh should be called
  5674.       first
  5675.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  5676.       DH (head number) since the WD-1003 controller which is the standard
  5677.       AT controller (and the controller that IDE emulates) only supports
  5678.       16 heads
  5679. SeeAlso: AH=05h"FLOPPY",AH=06h"FIXED",AH=07h"FIXED",AH=0Fh,AH=18h,AH=1Ah
  5680. --------d-1305-------------------------------
  5681. INT 13 - Future Domain SCSI BIOS - SEND SCSI MODE SELECT COMMAND
  5682.     AH = 05h
  5683.     DL = hard drive ID
  5684.     ES:BX -> mode select data (see below)
  5685. Return: CF set on error
  5686.     AH = status code (see AH=01h)
  5687. Notes:    this function can be called before AH=07h"SCSI" or AH=06h"SCSI" to
  5688.       format a SCSI disk with the desired parameters
  5689.     the mode select data below is from the SCSI-1 specification
  5690.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  5691.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  5692. SeeAlso: AH=06h"SCSI",AH=07h"SCSI",INT 4F/AX=8100h
  5693.  
  5694. Format of mode select data:
  5695. Offset    Size    Description
  5696.  00h    BYTE    number of bytes of remaining data (12 + vendor unique length)
  5697.  01h    BYTE    reserved (0)
  5698.  02h    BYTE    medium type (0 for hard disk)
  5699.  03h    BYTE    reserved (0)
  5700.  04h    BYTE    block descriptor length (8)
  5701.  05h    BYTE    density code (0 for hard disk)
  5702.  06h  3 BYTEs    (big-endian) number of blocks (000000h for entire disk)
  5703.  09h    BYTE    reserved (0)
  5704.  0Ah  3 BYTEs    (big-endian) block length (512 standard, or 256)
  5705.  0Dh    ???    vendor-specific parameter bytes (optional)
  5706. --------B-1306-------------------------------
  5707. INT 13 - FIXED DISK - FORMAT TRACK AND SET BAD SECTOR FLAGS (XT,PORT)
  5708.     AH = 06h
  5709.     AL = interleave value
  5710.     CH = cylinder number (bits 8,9 in high bits of CL)
  5711.     CL = sector number
  5712.     DH = head
  5713.     DL = drive
  5714. Return: AH = status code (see AH=01h)
  5715. Note:    AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  5716.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  5717.       into bits 6 and 7 of DH
  5718. SeeAlso: AH=05h"FIXED",AH=07h"FIXED"
  5719. --------d-1306-------------------------------
  5720. INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE WITH BAD SECTOR MAPPING
  5721.     AH = 06h
  5722.     AL = interleave
  5723.          (0 = default, 1 = consecutive sectors, 2 - 255 = vendor unique)
  5724.     DL = hard drive ID
  5725.     DH = bits 7-5 drive LUN
  5726.          bit 4    defect list is available
  5727.          bit 3    defect list is complete (erase drive's defect list)
  5728.          bits 2-0 defect table format
  5729.               (000=use defect table A, 100=use defect table B,
  5730.               101=use defect table C)
  5731.     ES:BX ->  defect table A, B or C (see below)
  5732. Return: CF set on error
  5733.     AH = status code (see AH=01h)
  5734. Notes:    block addresses must be in ascending order (for table B, cylinder is
  5735.       most significant, byte from index least significant; for table C,
  5736.       cylinder is most significant, sector number least significant)
  5737.     table B defect bytes from index of FFFFFFFFh indicates that the entire
  5738.       track shall be reassigned
  5739.     table C defect sector number of FFFFFFFFh indicates that the entire
  5740.       track shall be reassigned
  5741.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  5742.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  5743. SeeAlso: AH=05h"SCSI",AH=06h"FIXED",AH=07h"SCSI"
  5744.  
  5745. Format of defect table A:
  5746. Offset    Size    Description
  5747.  00h    WORD    number of bytes remaining in table
  5748.  02h    BYTE    reserved (0)
  5749.  03h    BYTE    reserved (0)
  5750.  04h    WORD    (big-endian) defect list length (4*number of defects)
  5751.  06h  4 DWORDs    (big-endian) defect block addresses
  5752.  
  5753. Format of defect table B:
  5754. Offset    Size    Description
  5755.  00h    WORD    number of bytes remaining in table
  5756.  02h    BYTE    reserved (0)
  5757.  03h    BYTE    reserved (0)
  5758.  04h    WORD    (big-endian) defect list length (8*number of defects)
  5759.  06h 8N BYTEs    defect list [array] (see below)
  5760.  
  5761. Format of defect table C:
  5762. Offset    Size    Description
  5763.  00h    WORD    number of bytes remaining in table
  5764.  02h    BYTE    reserved (0)
  5765.  03h    BYTE    reserved (0)
  5766.  04h    WORD    (big-endian) defect list length (8*number of defects)
  5767.  06h 8N BYTEs    defect list [array] (see below)
  5768.  
  5769. Format of defect list entry:
  5770. Offset    Size    Description
  5771.  00h  3 BYTEs    (big-endian) cylinder number of defect
  5772.  03h    BYTE    head number of defect
  5773.  04h    DWORD    (big-endian) defect bytes from index
  5774. --------d-1306-------------------------------
  5775. INT 13 - Adaptec AHA-154xA/Bustek BT-542 BIOS - IDENTIFY SCSI DEVICES
  5776.     AH = 06h
  5777. Return: AH = status code (see AH=01h)
  5778.     CF clear if successful
  5779.         AL = first drive supported
  5780.         (80h nonconcurrent operation, 81h concurrent operation)
  5781.     CF set on error
  5782. Desc:    determine the number of the first supported SCSI drive
  5783. Note:    the return value is 80h when two SCSI drives are supported, 81h if
  5784.       only one SCSI drive is installed
  5785. SeeAlso: AH=08h
  5786. --------B-1307-------------------------------
  5787. INT 13 - FIXED DISK - FORMAT DRIVE STARTING AT GIVEN TRACK (XT,PORT)
  5788.     AH = 07h
  5789.     AL = interleave value (XT only)
  5790.     ES:BX = 512-byte format buffer (see AH=05h)
  5791.     CH = cylinder number (bits 8,9 in high bits of CL)
  5792.     CL = sector number
  5793.     DH = head
  5794.     DL = drive
  5795. Return: AH = status code (see AH=01h)
  5796. Note:    AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  5797.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  5798.       into bits 6 and 7 of DH
  5799. SeeAlso: AH=05h"FIXED",AH=06h"FIXED",AH=1Ah
  5800. --------d-1307-------------------------------
  5801. INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE
  5802.     AH = 07h
  5803.     AL = interleave (0 = default, 1 = consecutive sectors,
  5804.            2 - 255 = vendor unique)
  5805.     DL = hard drive ID
  5806. Return: CF set on error
  5807.     AH = status code (see AH=01h)
  5808. SeeAlso: AH=05h"SCSI",AH=06h"SCSI",AH=07h"FIXED"
  5809. --------B-1308-------------------------------
  5810. INT 13 - DISK - GET DRIVE PARAMETERS (PC,XT286,CONV,PS,ESDI,SCSI)
  5811.     AH = 08h
  5812.     DL = drive (bit 7 set for hard disk)
  5813. Return: CF set on error
  5814.         AH = status (07h) (see AH=01h)
  5815.     CF clear if successful
  5816.         AH = 00h
  5817.         BL = drive type (AT/PS2 floppies only) (see below)
  5818.         CH = low eight bits of maximum cylinder number
  5819.         CL = maximum sector number (bits 5-0)
  5820.          high two bits of maximum cylinder number (bits 7-6)
  5821.         DH = maximum head number
  5822.         DL = number of drives
  5823.         ES:DI -> drive parameter table (floppies only)
  5824. Notes:    may return successful even though specified drive is greater than the
  5825.       number of attached drives of that type (floppy/hard); check DL to
  5826.       ensure validity
  5827.     for systems predating the IBM AT, this call is only valid for hard
  5828.       disks, as it is implemented by the hard disk BIOS rather than the
  5829.       ROM BIOS
  5830.     Toshiba laptops with HardRAM return DL=02h when called with DL=80h,
  5831.       but fail on DL=81h.  The BIOS data at 40h:75h correctly reports 01h.
  5832. SeeAlso: AH=06h"Adaptec",AH=15h,INT 1E,INT 41
  5833.  
  5834. Values for drive type:
  5835.  01h    360K
  5836.  02h    1.2M
  5837.  03h    720K
  5838.  04h    1.44M
  5839.  05h    ??? (reportedly an obscure drive type shipped on some IBM machines)
  5840.     2.88M on some machines (at least AMI 486 BIOS)
  5841.  06h    2.88M
  5842. --------B-1309-------------------------------
  5843. INT 13 - HARD DISK - INITIALIZE CONTROLLER WITH DRIVE PARAMETERS (AT,PS)
  5844.     AH = 09h
  5845.     DL = drive (80h for first, 81h for second)
  5846. Return: CF clear if successful
  5847.     CF set on error
  5848.     AH = status (see AH=01h)
  5849. Notes:    on the PC and XT, this function uses the parameter table pointed at by
  5850.       INT 41
  5851.     on the AT and later, this function uses the parameter table pointed at
  5852.       by INT 41 if DL=80h, and the parameter table pointed at by INT 46 if
  5853.       DL=81h
  5854. SeeAlso: INT 41,INT 46
  5855. --------B-130A-------------------------------
  5856. INT 13 - HARD DISK - READ LONG SECTOR(S) (AT and later)
  5857.     AH = 0Ah
  5858.     AL = number of sectors
  5859.     CH = low eight bits of cylinder number
  5860.     CL = sector number (bits 5-0)
  5861.          high two bits of cylinder number (bits 7-6)
  5862.     DH = head number
  5863.     DL = drive number (80h = first, 81h = second)
  5864.     ES:BX -> data buffer
  5865. Return: CF clear if successful
  5866.     CF set on error
  5867.     AH = status (see AH=01h)
  5868.     AL = number of sectors transferred
  5869. Notes:    this function reads in four to seven bytes of error-correcting code
  5870.       along with each sector's worth of information
  5871.     data errors are not automatically corrected, and the read is aborted
  5872.       after the first sector with an ECC error
  5873.     used for diagnostics only on PS/2 systems
  5874. SeeAlso: AH=02h,AH=0Bh
  5875. --------B-130B-------------------------------
  5876. INT 13 - HARD DISK - WRITE LONG SECTOR(S) (AT and later)
  5877.     AH = 0Bh
  5878.     AL = number of sectors
  5879.     CH = low eight bits of cylinder number
  5880.     CL = sector number (bits 5-0)
  5881.          high two bits of cylinder number (bits 7-6)
  5882.     DH = head number
  5883.     DL = drive number (80h = first, 81h = second)
  5884.     ES:BX -> data buffer
  5885. Return: CF clear if successful
  5886.     CF set on error
  5887.     AH = status (see AH=01h)
  5888.     AL = number of sectors transferred
  5889. Notes:    each sector's worth of data must be followed by four to seven bytes of
  5890.       error-correction information
  5891.     used for diagnostics only on PS/2 systems
  5892. SeeAlso: AH=03h,AH=0Ah
  5893. --------B-130C-------------------------------
  5894. INT 13 - HARD DISK - SEEK TO CYLINDER
  5895.     AH = 0Ch
  5896.     CH = low eight bits of cylinder number
  5897.     CL = sector number (bits 5-0)
  5898.          high two bits of cylinder number (bits 7-6)
  5899.     DH = head number
  5900.     DL = drive number (80h = first, 81h = second hard disk)
  5901. Return: CF set on error
  5902.     CF clear if successful
  5903.     AH = status (see AH=01h)
  5904. SeeAlso: AH=00h,AH=02h,AH=0Ah
  5905. --------d-130D-------------------------------
  5906. INT 13 - HARD DISK - RESET HARD DISKS
  5907.     AH = 0Dh
  5908.     DL = drive number (80h = first, 81h = second hard disk)
  5909. Return: CF set on error
  5910.     CF clear if successful
  5911.     AH = status (see AH=01h)
  5912. Notes:    reinitializes the hard disk controller, resets the specified drive's
  5913.       parameters, and recalibrates the drive's heads (seek to track 0)
  5914.     not for PS/2 ESDI drives
  5915. SeeAlso: AH=00h,INT 21/AH=0Dh
  5916. --------B-130E-------------------------------
  5917. INT 13 - HARD DISK - READ SECTOR BUFFER (XT only)
  5918.     AH = 0Eh
  5919.     DL = drive number (80h = first, 81h = second hard disk)
  5920.     ES:BX -> buffer
  5921. Return: CF set on error
  5922.     CF clear if successful
  5923.     AH = status code (see AH=01h)
  5924. Notes:    transfers controller's sector buffer.  No data is read from the drive
  5925.     used for diagnostics only on PS/2 systems
  5926. SeeAlso: AH=0Ah
  5927. --------B-130F-------------------------------
  5928. INT 13 - HARD DISK - WRITE SECTOR BUFFER (XT only)
  5929.     AH = 0Fh
  5930.     DL = drive number (80h = first, 81h = second hard disk)
  5931.     ES:BX -> buffer
  5932. Return: CF set on error
  5933.     CF clear if successful
  5934.     AH = status code (see AH=01h)
  5935. Notes:    does not write data to the drive
  5936.     should be called before formatting to initialize an XT-type
  5937.       controller's sector buffer
  5938.     used for diagnostics only on PS/2 systems
  5939. SeeAlso: AH=0Bh
  5940. --------B-1310-------------------------------
  5941. INT 13 - HARD DISK - CHECK IF DRIVE READY
  5942.     AH = 10h
  5943.     DL = drive number (80h = first, 81h = second hard disk)
  5944. Return: CF set on error
  5945.     CF clear if successful
  5946.     AH = status (see AH=01h)
  5947. --------B-1311-------------------------------
  5948. INT 13 - HARD DISK - RECALIBRATE DRIVE
  5949.     AH = 11h
  5950.     DL = drive number (80h = first, 81h = second hard disk)
  5951. Return: CF set on error
  5952.     CF clear if successful
  5953.     AH = status (see AH=01h)
  5954. Note:    causes hard disk controller to seek the specified drive to cylinder 0
  5955. SeeAlso: AH=00h,AH=0Ch,AH=19h"FIXED DISK"
  5956. --------B-1312-------------------------------
  5957. INT 13 - HARD DISK - CONTROLLER RAM DIAGNOSTIC (XT,PS)
  5958.     AH = 12h
  5959.     DL = drive number (80h = first, 81h = second hard disk)
  5960. Return: CF set on error
  5961.     CF clear if successful
  5962.     AH = status code (see AH=01h)
  5963. SeeAlso: AH=13h,AH=14h
  5964. --------d-1312-------------------------------
  5965. INT 13 - Future Domain SCSI CONTROLLER - STOP SCSI DISK
  5966.     AH = 12h
  5967.     DL = hard drive ID
  5968. Return: CF set on error
  5969.     AH = status code (see AH=01h)
  5970. Notes:    available at least on the TMC-870 8-bit SCSI controller BIOS v6.0A
  5971.     if the given drive is a SCSI device, the SCSI Stop Unit command is sent
  5972.       and either "Disk prepared for shipping" or "Disk Stop command failed"
  5973.       is displayed
  5974.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  5975.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  5976. --------B-1313-------------------------------
  5977. INT 13 - HARD DISK - DRIVE DIAGNOSTIC (XT,PS)
  5978.     AH = 13h
  5979.     DL = drive number (80h = first, 81h = second hard disk)
  5980. Return: CF set on error
  5981.     CF clear if successful
  5982.     AH = status code (see AH=01h)
  5983. SeeAlso: AH=12h,AH=14h
  5984. --------B-1314-------------------------------
  5985. INT 13 - HARD DISK - CONTROLLER INTERNAL DIAGNOSTIC
  5986.     AH = 14h
  5987. Return: CF set on error
  5988.     CF clear if successful
  5989.     AH = status code (see AH=01h)
  5990. SeeAlso: AH=12h,AH=13h
  5991. --------B-1315-------------------------------
  5992. INT 13 - DISK - GET DISK TYPE (XT 1/10/86 or later,XT286,AT,PS)
  5993.     AH = 15h
  5994.     DL = drive number (bit 7 set for hard disk)
  5995. Return: CF clear if successful
  5996.         AH = type code
  5997.         00h no such drive
  5998.         01h floppy without change-line support
  5999.         02h floppy with change-line support
  6000.         03h hard disk
  6001.             CX:DX = number of 512-byte sectors
  6002.     CF set on error
  6003.         AH = status (see AH=01h)
  6004. SeeAlso: AH=08h,AH=16h,AH=17h,AH=19h"SCSI"
  6005. --------B-1316-------------------------------
  6006. INT 13 - FLOPPY DISK - DETECT DISK CHANGE (XT 1/10/86 or later,XT286,AT,PS)
  6007.     AH = 16h
  6008.     DL = drive number
  6009. Return: CF clear if change line inactive
  6010.         AH = 00h (disk not changed)
  6011.     CF set if change line active
  6012.         AH = status
  6013.         06h change line active or not supported
  6014.         80h drive not ready or not present
  6015. Note:    call AH=15h first to determine whether the drive supports a change
  6016.       line
  6017. SeeAlso: AH=15h
  6018. --------B-1317-------------------------------
  6019. INT 13 - FLOPPY DISK - SET DISK TYPE FOR FORMAT (AT,PS)
  6020.     AH = 17h
  6021.     AL = format type
  6022.         01h = 320/360K disk in 360K drive
  6023.         02h = 320/360K disk in 1.2M drive
  6024.         03h = 1.2M disk in 1.2M drive
  6025.         04h = 720K disk in 720K drive
  6026.     DL = drive number
  6027. Return: CF set on error
  6028.     CF clear if successful
  6029.     AH = status (see AH=01h)
  6030. Note:    this function does not handle 1.44M drives; use AH=18h instead
  6031. SeeAlso: AH=15h,AH=18h
  6032. --------d-131700-----------------------------
  6033. INT 13 - Future Domain SCSI CONTROLLER - GET INQUIRY INFO FROM SCSI DEVICE
  6034.     AX = 1700h
  6035.     CL = length of buffer
  6036.     DL = hard drive ID
  6037.     ES:BX -> buffer for info
  6038. Return: CF clear if successful
  6039.         CH = number of bytes returned in buffer???
  6040.     CF set on error
  6041.         AH = status code (see AH=01h)
  6042. Notes:    this function is not available with 8-bit controller ROM versions < 7.0
  6043.     information block bytes 5-n are vendor-specific in older SCSI devices
  6044.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6045.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6046. SeeAlso: AH=18h"SCSI",AH=1Bh"SCSI"
  6047.  
  6048. Format of SCSI inquiry information block:
  6049. Offset    Size    Description
  6050.  00h    BYTE    device type
  6051.         bits 0-4: peripheral device type (see below)
  6052.         bits 5-7: peripheral qualifier (see below)
  6053.  01h    BYTE    device type modifier
  6054.         bits 0-6: device type modifier
  6055.         bit 7: removable medium
  6056.  02h    BYTE    SCSI version
  6057.         bits 0-2: ANSI-approved version
  6058.               000 device might or might not comply to ANSI standard
  6059.               001 device complies to ANSI SCSI-1
  6060.               010 device complies to ANSI SCSI-2
  6061.               other reserved
  6062.         bits 3-5: ECMA version
  6063.         bits 6,7: ISO version
  6064.  03h    BYTE    data format/capabilities
  6065.         bits 0-2: response data format
  6066.               000 information block is as specified in SCSI-1
  6067.               001 information block is as specified in CCS
  6068.               010 information block is as specified in SCSI-2
  6069.               other reserved
  6070.         bits 4,5: reserved
  6071.         bit 6: terminate I/O process supported
  6072.         bit 7: asynchronous event notification supported
  6073.  04h    BYTE    additional data length (total remaining bytes)
  6074.  05h  2 BYTEs    reserved
  6075.  07h    BYTE    device capabilities (see below)
  6076.  08h  8 BYTEs    vendor identification (space-padded ASCII)
  6077.  10h  8 BYTEs    product identification (space-padded ASCII)
  6078.  20h  4 BYTEs    product revision level (space-padded ASCII)
  6079.  24h 20 BYTEs    vendor specific
  6080.  38h 40 BYTEs    reserved
  6081.  60h    var    vendor specific parameters
  6082.  
  6083. Values for peripheral device type:
  6084.  00h    direct-access device (e.g., magnetic disk)
  6085.  01h    sequential-access device (e.g., magnetic tape)
  6086.  02h    printer device
  6087.  03h    processor device
  6088.  04h    write-once device (e.g., some optical disks)
  6089.  05h    CD-ROM device
  6090.  06h    scanner device
  6091.  07h    optical memory device (e.g., some optical disks)
  6092.  08h    medium changer device (e.g., jukeboxes)
  6093.  09h    communications device
  6094.  0Ah    (defined by ASC IT8)
  6095.  0Bh    (defined by ASC IT8)
  6096.  0Ch-1Eh reserved
  6097.  1Fh    unknown or no device type
  6098.  
  6099. Values for peripheral qualifier:
  6100.  000b    device is currently connected to this logical unit and available
  6101.  001b    target is capable of supporting the specified peripheral, but the
  6102.       physical device is not currently connected to this logical unit
  6103.  010b    reserved
  6104.  011b    target can't support a physical device on this logical unit
  6105.  1xxb    vendor specific
  6106.  
  6107. Bitfields for device capabilities:
  6108.  bit 0    device responds to RESET with a hard RESET
  6109.  bit 1    tagged command queuing supported
  6110.  bit 2    reserved
  6111.  bit 3    linked commands supported
  6112.  bit 4    synchronous data transfer supported
  6113.  bit 5    16-bit transfers supported
  6114.  bit 6    32-bit transfers supported
  6115.  bit 7    relative addressing supported
  6116. --------B-1318-------------------------------
  6117. INT 13 - DISK - SET MEDIA TYPE FOR FORMAT (AT model 3x9,XT2,XT286,PS)
  6118.     AH = 18h
  6119.     DL = drive number
  6120.     CH = lower 8 bits of highest cylinder number (number of cylinders - 1)
  6121.     CL = sectors per track (bits 0-5)
  6122.          top 2 bits of highest cylinder number (bits 6,7)
  6123. Return: AH = status
  6124.         00h requested combination supported
  6125.         01h function not available
  6126.         0Ch not supported or drive type unknown
  6127.         80h there is no disk in the drive
  6128.     ES:DI -> 11-byte parameter table
  6129. SeeAlso: AH=05h,AH=07h,AH=17h
  6130. --------d-1318-------------------------------
  6131. INT 13 - Future Domain SCSI BIOS - GET SCSI CONTROLLER INFORMATION
  6132.     AH = 18h
  6133.     DL = hard drive ID
  6134. Return: CF set on error
  6135.         AH = status code (see AH=01h)
  6136.     CF clear if successful
  6137.         AX = 4321h (magic number)
  6138.         CX = controller family code (see below)
  6139.         ---if family code=0200h
  6140.         DH = number of exclusively ROM-controlled SCSI devices
  6141.         DL = canonical SCSI device number for specified drive
  6142.         ---if family code <> 0200h
  6143.         BH = number of exclusively ROM-controlled SCSI devices
  6144.         BL = canonical SCSI device number for specified drive
  6145. Notes:    also sets an internal flag (non-resettable) which prevents some
  6146.       controller messages from being displayed, allows writes to
  6147.       removable devices (use caution!), and enables the INT 13 interface
  6148.       for more than one drive (i.e. DL >= 81h) in at least some ROM
  6149.       versions
  6150.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6151.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6152. SeeAlso: AH=05h"SCSI",AX=1700h"SCSI",AH=1Bh"SCSI",INT 4F/AX=8100h
  6153.  
  6154. Values for controller family code:
  6155.  0200h    TMC-1680/? (ROM 3.0)
  6156.  0203h    TMC-1650/1660/1670/1680 (ROM 2.0)
  6157.  040Ah    TMC-820/830/840/850/860/870/875/880/885 (ROM <= 6.0A)
  6158.  050Dh    TMC-840/841/880/881 (ROM 5.2D)
  6159.  0700h    TMC-830/850/860/875/885 (ROM 7.0)
  6160. --------B-1319-------------------------------
  6161. INT 13 - FIXED DISK - PARK HEADS (XT286,PS)
  6162.     AH = 19h
  6163.     DL = drive
  6164. Return: CF set on error
  6165.     AH = status (see AH=01h)
  6166. SeeAlso: AH=11h
  6167. --------d-1319-------------------------------
  6168. INT 13 - Future Domain SCSI CONTROLLER - REINITIALIZE DRIVE
  6169.     AH = 19h
  6170.     DL = hard drive ID
  6171. Return: CF set on error
  6172.         AH = status code (see AH=01h)
  6173.     CF clear if successful
  6174.         AH = disk type (03h = fixed disk)
  6175.         CX:DX = number of 512-byte sectors
  6176. Notes:    sends SCSI Read Capacity command to get number of logical blocks and
  6177.       adjusts the result for 512-byte sectors
  6178.     displays either "Error in Read Capacity Command" or "nnn Bytes per
  6179.       sector" (nnn=256 or 512, the only sizes supported in the translation
  6180.       code)
  6181.     should probably be called when a removable device has its media changed
  6182.     returns the same values as AH=15h
  6183.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6184.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6185. SeeAlso: AH=15h,AH=1Ah,INT 4F/AX=8100h
  6186. --------d-131A-------------------------------
  6187. INT 13 - ESDI FIXED DISK - FORMAT UNIT (PS)
  6188.     AH = 1Ah
  6189.     AL = defect table count
  6190.     CL = format modifiers (see below)
  6191.     DL = drive
  6192.     ES:BX -> defect table
  6193. Return: CF set on error
  6194.     AH = status (see AH=01h)
  6195. Note:    if periodic interrupt selected, INT 15/AH=0Fh is called after each
  6196.       cylinder is formatted
  6197. SeeAlso: AH=07h,INT 15/AH=0Fh
  6198.  
  6199. Bitfields for format modifiers:
  6200.  bit 4    generate periodic interrupt
  6201.  bit 3    perform surface analysis
  6202.  bit 2    update secondary defect map
  6203.  bit 1    ignore secondary defect map
  6204.  bit 0    ignore primary defect map
  6205. --------d-131A-------------------------------
  6206. INT 13 - Future Domain SCSI CONTROLLER - GET SCSI PARTIAL MEDIUM CAPACITY
  6207.     AH = 1Ah
  6208.     CH = track (bits 8,9 in high bits of CL)
  6209.     CL = sector (01h to number of sectors/track for drive)
  6210.     DH = head
  6211.     DL = hard drive ID
  6212. Return: CF set on error
  6213.     AH = status code (see AH=01h)
  6214.     CX:DX = logical block number of last quickly-accessible block after
  6215.         given block
  6216. Notes:    sends SCSI Read Capacity command with the PMI bit set to obtain the
  6217.       logical block address of the last block after which a substantial
  6218.       delay in data transfer will be encountered (usually the last block
  6219.       on the current cylinder).  No translation to 512 byte sectors is
  6220.       performed on the result if data is stored on the disk in other than
  6221.       512 byte sectors.
  6222.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6223.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6224. SeeAlso: AH=15h,AH=19h"SCSI"
  6225. --------d-131B-------------------------------
  6226. INT 13 - ESDI FIXED DISK - GET MANUFACTURING HEADER
  6227.     AH = 1Bh
  6228.     AL = number of record
  6229.     DL = drive
  6230.     ES:BX -> buffer for manufacturing header (defect list)
  6231. Return: CF set on error
  6232.         AH = status
  6233. Note:    manufacturing header format (Defect Map Record format) can be found
  6234.       in IBM 70MB, 115MB Fixed Disk Drives Technical Reference
  6235. --------d-131B-------------------------------
  6236. INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO SCSI DISK INFO BLOCK
  6237.     AH = 1Bh
  6238.     DL = hard drive ID
  6239. Return: CF set on error
  6240.         AH = status code (see AH=01h)
  6241.     CF clear if successful
  6242.         ES:BX -> SCSI disk information block
  6243. Notes:    also sets a non-resettable flag which prevents some controller messages
  6244.       from being displayed
  6245.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6246.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6247. SeeAlso: AH=18h"SCSI",AH=1Ch"SCSI"
  6248.  
  6249. Format of SCSI disk information block:
  6250. Offset    Size    Description
  6251.  00h    BYTE    drive physical information (see below)
  6252.  01h    WORD    translated number of cylinders
  6253.  03h    BYTE    translated number of heads
  6254.  04h    BYTE    translated number of sectors per track (17, 34, or 63)
  6255.  05h    BYTE    drive address
  6256.         bits 0-2: logical unit number
  6257.         bits 3-5: device number
  6258.  06h    BYTE    01h at initialization
  6259.  07h    BYTE    sense code byte 00h, or extended sense code byte 0Ch
  6260.  08h    BYTE    00h
  6261.  09h    BYTE    00h or extended sense code byte 02h (sense key)
  6262.  0Ah    BYTE    00h
  6263.  0Bh 10 BYTEs    copy of Command Descriptor Block (CDB)
  6264.  15h    DWORD    translated number of sectors on device
  6265.  
  6266. Bitfields for device physical information:
  6267.  bit 0    ???
  6268.  bit 1    device uses parity
  6269.  bit 2    256 bytes per sector instead of 512
  6270.  bit 3    don't have capacity yet???
  6271.  bit 4    disk is removable
  6272.  bit 5    logical unit number is not present
  6273. --------d-131C-------------------------------
  6274. INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO FREE CONTROLLER RAM
  6275.     AH = 1Ch
  6276.     DL = hard drive ID (any valid SCSI hard disk)
  6277. Return: CF set on error
  6278.         AH = status code (see AH=01h)
  6279.     CF clear if successful
  6280.         ES:BX -> first byte of free RAM on controller
  6281. Notes:    the Future Domain TMC-870 contains 1024 bytes of RAM at offsets 1800h
  6282.       to 1BFFh on-board the controller for storing drive information and
  6283.       controller status; ES:BX points to the first byte available for other
  6284.       uses
  6285.     ES contains the segment at which the controller resides; the
  6286.       controller's two memory-mapped I/O ports are at offsets 1C00h, 1E00h
  6287. SeeAlso: AH=1Bh"SCSI"
  6288. --------d-131C0A-----------------------------
  6289. INT 13 - ESDI FIXED DISK - GET DEVICE CONFIGURATION
  6290.     AX = 1C0Ah
  6291.     DL = drive
  6292.     ES:BX -> buffer for device configuration (drive physical parameter)
  6293. Return: CF set on error
  6294.         AH = status
  6295. Note:    device configuration format can be found in IBM ESDI Fixed Disk Drive
  6296.       Adapter/A Technical Reference
  6297. --------d-131C0B-----------------------------
  6298. INT 13 - ESDI FIXED DISK - GET ADAPTER CONFIGURATION
  6299.     AX = 1C0Bh
  6300.     ES:BX -> buffer for adapter configuration
  6301. Return: CF set on error
  6302.         AH = status
  6303. SeeAlso: AX=1C0Ch
  6304. --------d-131C0C-----------------------------
  6305. INT 13 - ESDI FIXED DISK - GET POS INFORMATION
  6306.     AX = 1C0Ch
  6307.     ES:BX -> POS information
  6308. Return: CF set on error
  6309.         AH = status
  6310. SeeAlso: AX=1C0Bh
  6311. --------d-131C0E-----------------------------
  6312. INT 13 - ESDI FIXED DISK - TRANSLATE RBA TO ABA
  6313.     AX = 1C0Eh
  6314.     CH = low 8 bits of cylinder number
  6315.     CL = sector number, high two bits of cylinder number in bits 6 and 7
  6316.     DH = head number
  6317.     DL = drive number
  6318.     ES:BX -> ABA number
  6319. Return: CF set on error
  6320.         AH = status
  6321. Note:    ABA (absolute block address) format can be found in IBM ESDI Adapter
  6322.       Technical Reference by using its Device Configuration Status Block
  6323. --------c-131D-------------------------------
  6324. INT 13 - IBMCACHE.SYS - CACHE STATUS
  6325.     AH = 1Dh
  6326.     AL = subfunction
  6327.         01h get status record
  6328.         DL = drive???
  6329.         Return: ES:BX -> status record
  6330.             CF set on error
  6331.                 AH = error code
  6332.         02h set cache status
  6333.         ES:BX -> status record
  6334.         DL = drive???
  6335.         Return: CF set on error
  6336.  
  6337. Format of status record:
  6338. Offset    Size    Description
  6339.  00h    DWORD    total number of read requests
  6340.  04h    DWORD    total number of hits
  6341.  08h    DWORD    number of physical disk reads
  6342.  0Ch    DWORD    total number of sectors requested by physical disk reads
  6343.  10h  6 bytes    ???
  6344.  16h    DWORD    pointer to start of error list
  6345.  1Ah    DWORD    pointer to end of error list
  6346.  1Eh    WORD    ???
  6347.  20h    BYTE    using extended memory if nonzero
  6348.  21h    BYTE    ???
  6349.  22h  4 BYTEs    ASCII version number
  6350.  26h    WORD    cache size in KB
  6351.  28h    WORD    sectors per page
  6352.  
  6353. Format of error list:
  6354. Offset    Size    Description
  6355.  00h    DWORD    relative block address of bad page
  6356.  04h    BYTE    drive
  6357.  05h    BYTE    sector bit-map
  6358.  06h    WORD    next error
  6359. --------d-1320-------------------------------
  6360. INT 13 - DISK - ??? (Western Digital "Super BIOS")
  6361.     AH = 20h
  6362.     ???
  6363. Return: ???
  6364. Note:    returns some kind of status related to whether the drive contains its
  6365.       default media type
  6366. --------c-1320-------------------------------
  6367. INT 13 u - QUICKCACHE II v4.20 - DISMOUNT
  6368.     AH = 20h
  6369.     AL = drive (00h = A:, etc. or 7Fh for all removable drives???
  6370.                    or FFh for all drives)
  6371. Return: AX = status (0000h successful)
  6372. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  6373.       Associates, Inc.
  6374. Desc:    flush any dirty buffers for the specified drive(s) and then discard
  6375.       those sector buffers
  6376. SeeAlso: AH=21h,AH=22h,AH=28h
  6377. --------c-1321-------------------------------
  6378. INT 13 u - QUICKCACHE II v4.20 - FLUSH CACHE
  6379.     AH = 21h
  6380. Return: AX = status (0000h successful)
  6381. Desc:    immediately write all dirty sectors back to disk
  6382. SeeAlso: AH=25h,AH=2Eh,AH=2Fh
  6383. --------c-1322-------------------------------
  6384. INT 13 u - QUICKCACHE II v4.20 - ENABLE/DISABLE CACHE
  6385.     AH = 22h
  6386.     AL = new state (00h disabled, 01h enabled)
  6387. Return: AX = status (0000h successful)
  6388. Note:    enables/disables caching of all drives
  6389. SeeAlso: AH=2Ch,AH=2Dh,AH=32h,AH=33h,AH=A3h,AH=A4h
  6390. --------c-1323-------------------------------
  6391. INT 13 U - QUICKCACHE II v4.20 - GET ??? ADDRESS
  6392.     AH = 23h
  6393. Return: AX = status (0000h successful)
  6394.     ES = segment of ??? data
  6395. --------c-1324-------------------------------
  6396. INT 13 u - QUICKCACHE II v4.20 - SET SECTORS
  6397.     AH = 24h
  6398.     BX = new number of sector buffers in cache
  6399. Return: AX = status
  6400.         0000h successful
  6401.         0001h failed--size adjusted
  6402.         8000h cache cannot be resized while enabled
  6403. SeeAlso: AH=36h
  6404. --------c-1325-------------------------------
  6405. INT 13 u - QUICKCACHE II v4.20 - SET FLUSH INTERVAL
  6406.     AH = 25h
  6407.     BX = interval
  6408. Return: AX = status (0000h successful)
  6409. Desc:    specify how often the cache should write dirty buffers to disk when
  6410.       buffered writes are enabled
  6411. SeeAlso: AH=21h,AH=2Ch,AH=2Eh
  6412. --------c-1326-------------------------------
  6413. INT 13 U - QUICKCACHE II v4.20 - UNINSTALL
  6414.     AH = 26h
  6415. Return: AX = status
  6416.         0000h successful
  6417.         0001h-00FFh interrupt vector which was hooked by another TSR
  6418. SeeAlso: AH=27h
  6419. --------c-1327--BX0000-----------------------
  6420. INT 13 u - QUICKCACHE II v4.20 - INSTALLATION CHECK
  6421.     AH = 27h
  6422.     BX = 0000h
  6423. Return: AX = 0000h if installed
  6424.     BX nonzero if installed
  6425.         BH = major version
  6426.         BL = binary minor version
  6427. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  6428.       Associates, Inc.
  6429. SeeAlso: AH=26h,AH=A0h,INT 16/AX=FFA5h/CX=1111h
  6430. --------c-1328-------------------------------
  6431. INT 13 U - QUICKCACHE II v4.20 - SET AUTOMATIC DISMOUNT
  6432.     AH = 28h
  6433.     AL = new state (00h disabled, 01h enabled)
  6434. Return: AX = status (0000h successful)
  6435. SeeAlso: AH=20h"QUICKCACHE"
  6436. --------c-1329-------------------------------
  6437. INT 13 U - QUICKCACHE II v4.20 - NOP
  6438.     AH = 29h
  6439. Return: AX = 0000h
  6440. --------c-132A-------------------------------
  6441. INT 13 u - QUICKCACHE II v4.20 - SET BUFFER SIZE
  6442.     AH = 2Ah
  6443.     AL = buffer size (1-30)
  6444. Return: AX = status (0000h successful)
  6445. Desc:    specify the number of cache sector buffers to dedicate to buffered read
  6446.       and write operations
  6447. SeeAlso: AH=2Ch,AH=2Dh,AH=39h,AH=3Ah
  6448. --------c-132B-------------------------------
  6449. INT 13 U - QUICKCACHE II v4.20 - DRIVE ACCESS SOUNDS
  6450.     AH = 2Bh
  6451.     AL = new state (00h disabled, 01h enabled)
  6452. Return: AX = status (0000h successful)
  6453. --------c-132C-------------------------------
  6454. INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED WRITES
  6455.     AH = 2Ch
  6456.     AL = new state (00h disabled, 01h enabled)
  6457. Return: AX = status (0000h successful)
  6458. Desc:    specify whether the cache should delay disk writes
  6459. Note:    this function enables or disables delayed writes for all drives; use
  6460.       AH=38h to change a single drive
  6461. SeeAlso: AH=25h,AH=2Dh,AH=2Eh,AH=38h
  6462. --------c-132D-------------------------------
  6463. INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED READ
  6464.     AH = 2Dh
  6465.     AL = new state (00h disabled, 01h enabled)
  6466. Return: AX = status (0000h successful)
  6467. Desc:    specify whether the cache should attempt to read ahead of actual
  6468.       requests
  6469. Note:    this function enables or disables read-ahead for all drives; use AH=37h
  6470.       to change a single drive
  6471. SeeAlso: AH=2Ch,AH=37h
  6472. --------c-132E-------------------------------
  6473. INT 13 u - QUICKCACHE II v4.20 - SET FLUSH COUNT
  6474.     AH = 2Eh
  6475.     BX = flush count
  6476. Return: AX = status (0000h successful)
  6477. Desc:    specify how many dirty sectors the cache should write after each flush
  6478.       interval (see AH=25h) when buffered writes are enabled
  6479. SeeAlso: AH=21h,AH=25h,AH=2Ch
  6480. --------c-132F-------------------------------
  6481. INT 13 - QUICKCACHE II v4.20 - FORCE IMMEDIATE INCREMENTAL FLUSH
  6482.     AH = 2Fh
  6483. Return: AX = status (0000h successful)
  6484. Desc:    immediately flush up to "flushcount" dirty sectors to disk as if the
  6485.       flush interval had expired
  6486. SeeAlso: AH=21h
  6487. --------c-1330-------------------------------
  6488. INT 13 u - QUICKCACHE II v4.20 - GET INFO
  6489.     AH = 30h
  6490.     AL = what to get
  6491.         00h system info (see below)
  6492.         01h drive info (see below)
  6493.         02h access frequency (array of 30 words)
  6494.         03h drive index
  6495.         (array of 32 bytes indicating BIOS drive for DOS drive)
  6496.     DS:DX -> buffer for info
  6497. Return: AX = status (0000h successful, 8000h invalid info specifier)
  6498. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  6499.       Associates, Inc.
  6500.  
  6501. Format of system info:
  6502. Offset    Size    Description
  6503.  00h    BYTE    flag: cache enabled
  6504.  01h    BYTE    flag: buffered writes enabled
  6505.  02h    BYTE    flag: buffered reads enabled
  6506.  03h    BYTE    flag: sounds enabled
  6507.  04h    BYTE    flag: autodismount enabled
  6508.  05h    BYTE    ???
  6509.  06h    BYTE    flag: ???
  6510.  07h    BYTE    flag: ???
  6511.  08h    BYTE    flag: "em_assigned"
  6512.  09h    BYTE    flag: emulated EMS
  6513.  0Ah    BYTE    single sector bonus
  6514.  0Bh    BYTE    "sticky_max"
  6515.  0Ch    BYTE    write sector bonus
  6516.  0Dh    BYTE    bonus threshold
  6517.  0Eh    WORD    flush interval
  6518.  10h    WORD    flush count
  6519.  12h    WORD    reserve pool size
  6520.  14h    WORD    remaining space in reserve pool
  6521.  16h    WORD    required free memory
  6522.  18h    WORD    total cache sectors
  6523.  1Ah    WORD    dirty cache sectors
  6524.  1Ch    BYTE    trace buffer size
  6525.  1Dh    BYTE    reserved (padding)
  6526.  
  6527. Format of drive info [16-element array, one element]:
  6528. Offset    Size    Description
  6529.  00h    BYTE    DOS drive number
  6530.  01h    BYTE    BIOS drive number
  6531.  02h    BYTE    maximum sector number
  6532.  03h    BYTE    maximum head number
  6533.  04h    BYTE    read buffer size
  6534.  05h    BYTE    write buffer size
  6535.  06h    BYTE    last status
  6536.  07h    BYTE    flag: enabled
  6537.  08h    BYTE    flag: buffered write enabled
  6538.  09h    BYTE    flag: buffered read enabled
  6539.  0Ah    BYTE    flag: in use (drive info is valid)
  6540.  0Bh    BYTE    flag: cylinder flush
  6541.  0Ch    BYTE    reserved (padding)
  6542.  0Dh    BYTE    sectors per track
  6543.  0Eh    WORD    sector size
  6544.  10h    WORD    sectors assigned
  6545.  12h    WORD    dirty sectors
  6546.  14h    WORD    reserved sectors
  6547.  16h    WORD    number of read errors
  6548.  18h    WORD    number of write errors
  6549.  1Ah    DWORD    "rio_count"
  6550.  1Eh    DWORD    number of cache misses
  6551.  22h    DWORD    "wio_count"
  6552.  26h    DWORD    "dio_count"
  6553. --------c-1331-------------------------------
  6554. INT 13 U - QUICKCACHE II v4.20 - RESERVE MEMORY
  6555.     AH = 31h
  6556.     BX = number of paragraphs of conventional memory to reserve for apps
  6557. Return: AX = status (0000h successful)
  6558. --------c-1332-------------------------------
  6559. INT 13 U - QUICKCACHE II v4.20 - ENABLE CACHING FOR SPECIFIC DRIVE
  6560.     AH = 32h
  6561.     AL = drive number (00h=A:)
  6562. Return: AX = status (0000h successful)
  6563. SeeAlso: AH=22h,AH=33h
  6564. --------c-1333-------------------------------
  6565. INT 13 U - QUICKCACHE II v4.20 - DISABLE CACHING FOR SPECIFIC DRIVE
  6566.     AH = 33h
  6567.     AL = drive number (00h=A:)
  6568. Return: AX = status (0000h successful)
  6569. SeeAlso: AH=22h,AH=32h
  6570. --------c-1334-------------------------------
  6571. INT 13 U - QUICKCACHE II v4.20 - SECTOR LOCKING
  6572.     AH = 34h
  6573.     AL = function
  6574.         00h end sector locking/unlocking
  6575.         01h lock all accessed sectors into cache
  6576.         02h unlock all accessed sectors and discard from cache
  6577. Return: AX = status (0000h successful)
  6578. SeeAlso: AH=20h,AH=35h
  6579. --------c-1335-------------------------------
  6580. INT 13 U - QUICKCACHE II v4.20 - SET LOCK POOL SIZE
  6581.     AH = 35h
  6582.     BX = number of sectors in lock pool
  6583. Return: AX = status (0000h successful)
  6584. Desc:    specify the number of cache sector buffers which may be dedicated to
  6585.       data locked into the cache
  6586. SeeAlso: AH=34h
  6587. --------c-1336-------------------------------
  6588. INT 13 U - QUICKCACHE II v4.20 - SET TRACE BUFFER SIZE
  6589.     AH = 36h
  6590.     AL = new size of trace buffer
  6591. Return: AX = status (0000h successful)
  6592. Note:    called with AL=05h during an INT 13/AH=24h call
  6593. SeeAlso: AH=24h
  6594. --------c-1337-------------------------------
  6595. INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED READS FOR SPECIFIC DRIVE
  6596.     AH = 37h
  6597.     AL = new state (00h disabled, else enabled)
  6598.     DL = drive number (00h = A:)
  6599. Return: AX = status (0000h successful)
  6600. SeeAlso: AH=2Dh,AH=38h
  6601. --------c-1338-------------------------------
  6602. INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED WRITES FOR SPECIFIC DRIVE
  6603.     AH = 38h
  6604.     AL = new state (00h disabled, else enabled)
  6605.     DL = drive number (00h = A:)
  6606. Return: AX = status (0000h successful)
  6607. SeeAlso: AH=2Ch,AH=37h
  6608. --------c-1339-------------------------------
  6609. INT 13 U - QUICKCACHE II v4.20 - SET READ BUFFER SIZE FOR SPECIFIC DRIVE
  6610.     AH = 39h
  6611.     AL = new size of read buffer
  6612.     DL = drive number (00h = A:)
  6613. Return: AX = status (0000h successful)
  6614. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  6615.       Associates, Inc.
  6616. SeeAlso: AH=2Ah,AH=3Ah
  6617. --------c-133A-------------------------------
  6618. INT 13 U - QUICKCACHE II v4.20 - SET WRITE BUFFER SIZE FOR SPECIFIC DRIVE
  6619.     AH = 3Ah
  6620.     AL = new size of write buffer
  6621.     DL = drive number (00h = A:)
  6622. Return: AX = status (0000h successful)
  6623. SeeAlso: AH=2Ah,AH=39h
  6624. --------c-133B-------------------------------
  6625. INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ???
  6626.     AH = 3Bh
  6627.     AL = new state of ??? (01h enabled, else disabled)
  6628. Return: AX = status (0000h successful)
  6629. Note:    is affected by the flag reported at offset 05h of the system info
  6630.       returned by AH=30h, and sets the flag at offset 06h
  6631. SeeAlso: AH=3Ch
  6632. --------c-133C-------------------------------
  6633. INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ???
  6634.     AH = 3Ch
  6635.     AL = new state of ??? (01h enabled, else disabled)
  6636. Return: AX = status (0000h successful)
  6637. Note:    is affected by the flag reported at offset 05h of the system info
  6638.       returned by AH=30h, and sets the flag at offset 07h
  6639. SeeAlso: AH=3Bh
  6640. --------c-133D-------------------------------
  6641. INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE CYLINDER FLUSH FOR DRIVE
  6642.     AH = 3Dh
  6643.     AL = new state (01h enabled, else disabled)
  6644.     DL = drive number (00h = A:)
  6645. Return: AX = status (0000h successful)
  6646. --------c-133E-------------------------------
  6647. INT 13 U - QUICKCACHE II v4.20 - SET SINGLE-SECTOR BONUS
  6648.     AH = 3Eh
  6649.     AL = new value for bonus
  6650. Return: AX = status (0000h successful)
  6651. Desc:    specify the bonus score to give to single-sector transfers in order to
  6652.       keep those sectors in the cache longer
  6653. --------c-133F-------------------------------
  6654. INT 13 U - QUICKCACHE II v4.20 - SET BONUS THRESHOLD
  6655.     AH = 3Fh
  6656.     AL = new value for bonus threshold
  6657. Return: AX = status (0000h successful)
  6658. --------c-1340-------------------------------
  6659. INT 13 U - QUICKCACHE II v4.20 - SET "sticky_max"
  6660.     AH = 40h
  6661.     AL = new value for "sticky_max"
  6662. Return: AX = status (0000h successful)
  6663. --------c-1341-------------------------------
  6664. INT 13 U - QUICKCACHE II v4.20 - SAVE/RESTORE ???
  6665.     AH = 41h
  6666.     AL = direction
  6667.         01h save to file
  6668.         else restore from file
  6669.     ES:DI -> 1024-byte buffer for ???
  6670. Return: AX = status (0000h successful, 8000h failed)
  6671. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  6672.       Associates, Inc.
  6673. --------N-134257DX1234-----------------------
  6674. INT 13 U - Beame&Whiteside BWLPD - INSTALLATION CHECK
  6675.     AX = 4257h ("BW")
  6676.     DX = 1234h
  6677. Return: BX = 414Ch if installed
  6678. Program: BWLPD is the printer daemon from the BW-NFS package
  6679. SeeAlso: INT 62"BW-TCP"
  6680. --------v-135342CX0001-----------------------
  6681. INT 13 - ScanBoot - INSTALLATION CHECK
  6682.     AX = 5342h ("SB")
  6683.     CX = 0001h
  6684.     DX = 0000h
  6685. Return: CF clear if ScanBoot installed
  6686.        AX = 0000h
  6687.        CX = serial number ("SW" if shareware release)
  6688.        DX = version
  6689.        BX,SI,ES destroyed
  6690. Program: ScanBoot is a virus-detection TSR by PanSoft
  6691. --------d-135504-----------------------------
  6692. INT 13 - Seagate - GET CONTROLLER TYPE???
  6693.     AX = 5504h
  6694.     DX = drive (bit 7 set for hard disk)
  6695. Return: CF clear if successful
  6696.         AX = 4321h,4322h if Seagate controller
  6697.     CF set on error
  6698. SeeAlso: AX=5505h,AX=5514h
  6699. --------d-135505-----------------------------
  6700. INT 13 - Seagate - PARK HEADS???
  6701.     AX = 5505h
  6702.     DX = drive (bit 7 set for hard disk)
  6703. Return: CF clear if successful
  6704.     CF set on error
  6705. SeeAlso: AX=5504h,AX=5515h
  6706. --------d-135514-----------------------------
  6707. INT 13 - Seagate - ???
  6708.     AX = 5514h
  6709.     DX = drive (bit 7 set for hard disk)
  6710. Return: CF clear if successful
  6711.     CF set on error
  6712.     AX = return value (FEBEh,FEBFh,FEDAh,FEDBh)
  6713. SeeAlso: AX=5504h,AX=5515h
  6714. --------d-135515-----------------------------
  6715. INT 13 - Seagate - PARK HEADS???
  6716.     AX = 5515h
  6717.     DX = drive (bit 7 set for hard disk)
  6718. Return: CF clear if successful
  6719.     CF set on error
  6720. Note:    appears to be identical to AX=5505h
  6721. SeeAlso: AX=5504h,AX=5505h
  6722. --------d-1370-------------------------------
  6723. INT 13 - Priam EDVR.SYS DISK PARTITIONING SOFTWARE???
  6724.     AH = 70h
  6725.     ???
  6726. Return: ???
  6727. Note:    Priam's EDISK.EXE (FDISK replacement) and EFMT.EXE (low-level
  6728.       formatting program) make this call, presumably to EDVR.SYS (the
  6729.       partitioning driver)
  6730. SeeAlso: AH=ADh
  6731. ----------1375-------------------------------
  6732. INT 13 - ???
  6733.     AH = 75h
  6734.     ???
  6735. Return: AH = ???
  6736.     ???
  6737. Note:    intercepted by PC-Cache (v5.1 only)
  6738. ----------1376-------------------------------
  6739. INT 13 - ???
  6740.     AH = 76h
  6741.     ???
  6742. Return: AH = ???
  6743.     ???
  6744. Note:    intercepted by PC-Cache (v5.1 only)
  6745. --------c-137B00-----------------------------
  6746. INT 13 - NOW! v3.05 - GET INFORMATION
  6747.     AX = 7B00h
  6748.     CX:DX -> 1F8h-byte buffer for information record (see below)
  6749. Return: AX = 0000h
  6750.     BX = segment of main resident code
  6751.     ES = ???
  6752. Program: NOW! is a disk cache by Vertisoft Systems, Inc.
  6753. SeeAlso: AX=7B02h,AH=EFh
  6754.  
  6755. Format of information record:
  6756. Offset    Size    Description
  6757.  00h 80 BYTEs    name of directory from which NOW! was started
  6758.  50h 424 BYTEs    ???
  6759.  81h  ? BYTEs    array of bytes for ???
  6760.  F7h 250 BYTEs    array of 25 entries, one per drive???
  6761.     Offset    Size    Description
  6762.      00h  2 BYTEs    ???
  6763.      02h    WORD    ???
  6764.      04h    WORD    ???
  6765.      06h  4 BYTEs    ???
  6766. 1F1h  7 BYTEs    ???
  6767. --------c-137B01-----------------------------
  6768. INT 13 - NOW! v3.05 - ???
  6769.     AX = 7B01h
  6770. Return: DX = segment of ???
  6771. SeeAlso: AX=7B00h
  6772. --------c-137B02-----------------------------
  6773. INT 13 - NOW! v3.05 - SET INFORMATION
  6774.     AX = 7B02h
  6775.     BX = segment of ??? (10h above a PSP)
  6776.     CX:DX -> 1F8h-byte information record (see AX=7B00h)
  6777. Return: ???
  6778. Program: NOW! is a disk cache by Vertisoft Systems, Inc.
  6779. Note:    NOW! grabs the INT 24h value from the PSP reached via the segment in
  6780.       BX
  6781. SeeAlso: AX=7B00h
  6782. --------c-137B03-----------------------------
  6783. INT 13 - NOW! v3.05 - ???
  6784.     AX = 7B03h
  6785.     ???
  6786. Return: ???
  6787. SeeAlso: AX=7B00h,AX=7B04h
  6788. --------c-137B04-----------------------------
  6789. INT 13 - NOW! v3.05 - ???
  6790.     AX = 7B04h
  6791.     ???
  6792. Return: ???
  6793. SeeAlso: AX=7B03h
  6794. --------c-137B05-----------------------------
  6795. INT 13 - NOW! v3.05 - GET DISK ACCESSES???
  6796.     AX = 7B05h
  6797. Return: BX:AX = number of physical accesses???
  6798.     DX:CX = total disk accesses???
  6799. SeeAlso: AX=7B00h,AX=7B06h
  6800. --------c-137B06-----------------------------
  6801. INT 13 - NOW! v3.05 - GET ???
  6802.     AX = 7B06h
  6803.     BX = ???
  6804. Return: AX = 0000h
  6805.     BX = ???
  6806. SeeAlso: AX=7B05h,AX=7B07h
  6807. --------c-137B07-----------------------------
  6808. INT 13 - NOW! v3.05 - GET ???
  6809.     AX = 7B07h
  6810. Return: AX = ???
  6811.     BX = ???
  6812.     CX = ???
  6813.     DX = ???
  6814. SeeAlso: AX=7B06h
  6815. --------c-137B08-----------------------------
  6816. INT 13 - NOW! v3.05 - ???
  6817.     AX = 7B08h
  6818.     CX = ??? (default 00h)
  6819. Return: ???
  6820. SeeAlso: AX=7B00h
  6821. --------c-1380--CX6572-----------------------
  6822. INT 13 - FAST! v4.02+ - API
  6823.     AH = 80h
  6824.     CX = 6572h
  6825.     DX = 1970h
  6826.     ES:BX -> request packet (see below)
  6827.     AL = function
  6828.         01h get cache information (see separate entry)
  6829.         04h disable cache
  6830.         05h enable cache and reset statistics
  6831.         06h installation check (see separate entry)
  6832.         07h unhook interrupts (see separate entry)
  6833.         09h flush cache
  6834.         0Ah (v4.02+) enable staged writes
  6835.         0Bh (v4.02+) disable staged writes
  6836.         0Ch (v4.02+) enable beep on flush
  6837.         0Dh (v4.02+) disable beep on flush
  6838.         0Eh ???
  6839.         0Fh ???
  6840.         10h (v4.12+) enable hotkeys
  6841.         11h (v4.12+) disable hotkeys
  6842.         12h (v4.13+) set idle delay
  6843.         13h (v4.13+) set flush dirty percentage
  6844.         14h (v5.00+) enable mouse checks
  6845.         15h (v5.00+) disable mouse checks
  6846.         16h (v5.00d+) reduce cache size to minimum
  6847.         17h (v5.00d+) increase cache size to maximum
  6848. Return: AH = status (except function 06h)
  6849.         00h if successful
  6850.         01h invalid function
  6851.         05h not supported by the installed variant
  6852.     CF clear if successful
  6853.     CF set on error
  6854.     AL may be destroyed
  6855. Program: FAST! is a disk cache by Future Computing Systems and marketed by BLOC
  6856.       Publishing Corp.
  6857. SeeAlso: AX=8001h,AX=8006h,AX=8007h
  6858. Index:    hotkeys;FAST!
  6859.  
  6860. Format of request packet:
  6861. Offset    Size    Description
  6862.  00h    DWORD    pointer to 19-byte signature string (see below)
  6863.  04h    DWORD    pointer to buffer for data (if needed by function)
  6864.  
  6865. Values for v4.04-v5.03 signature string:
  6866.  13h 07h 06h 08h 11h 18h 0Fh 0Eh 02h 18h 13h 08h 0Bh 08h 01h 00h 04h 08h 15h
  6867. --------c-138001CX6572-----------------------
  6868. INT 13 - FAST! v4.02+ - GET CACHE INFORMATION
  6869.     AX = 8001h
  6870.     CX = 6572h
  6871.     DX = 1970h
  6872.     ES:BX -> request packet (see below)
  6873. Return: AH = 00h if successful
  6874. SeeAlso: AH=80h,AX=8006h
  6875.  
  6876. Format of request packet:
  6877. Offset    Size    Description
  6878.  00h    DWORD    -> 19-byte signature string (see AH=80h)
  6879.  04h    DWORD    -> buffer for cache information (see below)
  6880.  
  6881. Format of cache information (v5.00-5.03):
  6882. Offset    Size    Description
  6883.  00h    WORD    binary version number of FAST! (v5.00 = 01F4h)
  6884.  02h    BYTE    revision letter (61h = X.XXa, 62h = X.XXb, etc.)
  6885.  03h    BYTE    FAST! variant
  6886.         (01h = FASTE, 02h = FASTX BIOS, 04h = FASTC, 20h = FASTX XMS)
  6887.  04h    DWORD    total number of read requests
  6888.  08h    DWORD    number of physical disk reads
  6889.  0Ch    DWORD    grabbed hash buckets
  6890.  10h    DWORD    "st_386mem"
  6891.  14h    DWORD    total number of writes (only counted when staging enabled)
  6892.  18h    DWORD    number of physical disk writes (only when staging enabled)
  6893.  1Ch    DWORD    number of write errors while flushing cache
  6894.  20h    WORD    flags
  6895.         bit 0: beep on flush
  6896.         bit 3: hotkeys enabled
  6897.         bit 4: mouse idle check enabled
  6898.         bit 8: caching enabled
  6899.         bit 13: ???
  6900.  22h    WORD    flags
  6901.         bit 0: ???
  6902.         bit 1: staged writes enabled
  6903.  24h    WORD    ???
  6904.  26h    WORD    maximum cache size in KB
  6905.  28h    WORD    minimum cache size in KB
  6906.  2Ah    WORD    segment of first cache buffer (FASTC)
  6907.         segment of EMS page frame (FASTE)
  6908.         XMS handle (FASTX XMS)
  6909.  2Ch    WORD    number of hash buckets containing no entries
  6910.  2Eh    WORD    number of hash buckets containing one entry
  6911.  30h    WORD    number of hash buckets containing two entries
  6912.  32h    WORD    number of hash buckets containing three entries
  6913.  34h    WORD    number of hash buckets containing four entries
  6914.  36h    WORD    number of hash buckets containing five entries
  6915.  38h    WORD    maximum contiguous sectors
  6916.  3Ah    WORD    hash factor
  6917.  3Ch    WORD    number of paragraphs of memory used below 1M
  6918.  3Eh    WORD    entries per hash bucket
  6919.  40h    WORD    idle delay in seconds
  6920.  42h  2 BYTEs    ???
  6921.  44h    WORD    staged write threshold percentage
  6922.  46h  2 BYTEs    ???
  6923.  48h    WORD    number of dirty sectors
  6924.  4Ah    WORD    number of staged write buffers
  6925.  4Ch    WORD    current cache size in KB
  6926.  4Eh    WORD    beep frequency in Hz
  6927.  50h    WORD    ???
  6928.  52h    WORD    ???
  6929. --------c-138006CX6572-----------------------
  6930. INT 13 - FAST! v4.02+ - INSTALLATION CHECK
  6931.     AX = 8006h
  6932.     CX = 6572h
  6933.     DX = 1970h
  6934.     ES:BX -> request packet (see below)
  6935. Return: AX = 1965h if installed
  6936. SeeAlso: AH=80h,AX=8001h,AX=8007h
  6937.  
  6938. Format of request packet:
  6939. Offset    Size    Description
  6940.  00h    DWORD    -> 19-byte signature string (see AH=80h)
  6941. --------c-138007CX6572-----------------------
  6942. INT 13 - FAST! v4.02+ - UNHOOK INTERRUPTS
  6943.     AX = 8007h
  6944.     CX = 6572h
  6945.     DX = 1970h
  6946.     ES:BX -> request packet (see below)
  6947. Return: AX = 1965h if installed
  6948. SeeAlso: AH=80h,AX=8006h
  6949. Index:    uninstall;FAST!
  6950.  
  6951. Format of request packet:
  6952. Offset    Size    Description
  6953.  00h    DWORD    -> 19-byte signature string (see AH=80h)
  6954. --------c-1381--SI4358-----------------------
  6955. INT 13 - Super PC-Kwik v3.20+ - ???
  6956.     AH = 81h
  6957.     SI = 4358h
  6958.     ???
  6959. Return: ???
  6960. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  6961.       Super PC-Kwik, and thus support this call (PC-Cache v5.1 corresponds
  6962.       to PC-Kwik v3.20 and PC-Cache v5.5 to PC-Kwik v3.27)
  6963.     returns immediately in PC-Cache v5.x
  6964. Index:    PC-Cache|Qualitas Qcache
  6965. --------c-1382--SI4358-----------------------
  6966. INT 13 - Super PC-Kwik v3.20+ - ???
  6967.     AH = 82h
  6968.     SI = 4358h
  6969.     ???
  6970. Return: AL = ???
  6971. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  6972.       Super PC-Kwik, and thus support this call
  6973. SeeAlso: AH=84h
  6974. Index:    PC-Cache|Qualitas Qcache
  6975. --------c-1383--SI4358-----------------------
  6976. INT 13 - Super PC-Kwik v3.20+ - ???
  6977.     AH = 83h
  6978.     SI = 4358h
  6979.     AL = ???
  6980.     ES:BX -> ???
  6981.     ???
  6982. Return: ???
  6983. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  6984.       Super PC-Kwik, and thus support this call
  6985. SeeAlso: AH=85h
  6986. Index:    PC-Cache|Qualitas Qcache
  6987. --------c-1384--SI4358-----------------------
  6988. INT 13 - Super PC-Kwik v3.20+ - ???
  6989.     AH = 84h
  6990.     SI = 4358h
  6991.     AL = ???
  6992.     ???
  6993. Return: AL = ???
  6994. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  6995.       Super PC-Kwik, and thus support this call
  6996. SeeAlso: AH=82h
  6997. Index:    PC-Cache|Qualitas Qcache
  6998. --------c-1385--SI4358-----------------------
  6999. INT 13 - Super PC-Kwik v3.20+ - ???
  7000.     AH = 85h
  7001.     SI = 4358h
  7002.     AL = ???
  7003.     DL = ???
  7004.     ???
  7005. Return: ???
  7006. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7007.       Super PC-Kwik, and thus support this call (PC-Cache v5.1 corresponds
  7008.       to PC-Kwik v3.20)
  7009. SeeAlso: AH=83h
  7010. Index:    PC-Cache|Qualitas Qcache
  7011. --------c-1386--SI4358-----------------------
  7012. INT 13 - Super PC-Kwik v4.00+ - ???
  7013.     AH = 86h
  7014.     SI = 4358h
  7015.     ???
  7016. Return: ???
  7017. Note:    Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
  7018.       thus supports this call
  7019. Index:    Qualitas Qcache
  7020. --------c-1387--SI4358-----------------------
  7021. INT 13 - Super PC-Kwik v4.00+ - ???
  7022.     AH = 87h
  7023.     SI = 4358h
  7024.     ???
  7025. Return: AH = status??? (00h)
  7026.     CX = ???
  7027.     DX = ??? (0000h)
  7028. Note:    Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
  7029.       thus supports this call
  7030. Index:    Qualitas Qcache
  7031. --------c-1388--SI4358-----------------------
  7032. INT 13 - Super PC-Kwik v4.00+ - ???
  7033.     AH = 88h
  7034.     SI = 4358h
  7035.     ???
  7036. Return: AH = status??? (00h)
  7037.     CX = ???
  7038.     DX = ??? (0000h)
  7039. Note:    Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
  7040.       thus supports this call
  7041. Index:    Qualitas Qcache
  7042. --------c-1389--SI4358-----------------------
  7043. INT 13 - Super PC-Kwik v5.10+ - ???
  7044.     AH = 89h
  7045.     SI = 4358h
  7046.     ???
  7047. Return: ???
  7048. --------c-138A--SI4358-----------------------
  7049. INT 13 - Super PC-Kwik v5.10+ - ???
  7050.     AH = 8Ah
  7051.     SI = 4358h
  7052.     ???
  7053. Return: ???
  7054. --------c-138EED-----------------------------
  7055. INT 13 - HyperDisk v4.01+ - ???
  7056.     AX = 8EEDh
  7057.     ???
  7058. Return: ???
  7059. Program: HyperDisk is a shareware disk cache by HyperWare (Roger Cross)
  7060. SeeAlso: AX=8EEEh,AX=8EEFh,AH=EEh,INT 2F/AH=DFh
  7061. --------c-138EEE-----------------------------
  7062. INT 13 - HyperDisk v4.01+ - ???
  7063.     AX = 8EEEh
  7064. Return: CF set
  7065.     AX = CS of HyperDisk resident code
  7066.     ???
  7067. Note:    identical to AX=8EEFh in HYPERDKX v4.21-4.30
  7068. SeeAlso: AX=8EEDh,AX=8EEFh,AH=EEh
  7069. --------c-138EEF-----------------------------
  7070. INT 13 - HyperDisk v4.01+ - ???
  7071.     AX = 8EEFh
  7072. Return: CF set
  7073.     AX = CS of HyperDisk resident code
  7074.     ???
  7075. Note:    identical to AX=8EEEh in HYPERDKX v4.21-4.30
  7076. SeeAlso: AX=8EEDh,AX=8EEEh,AH=EEh
  7077. --------c-1392--SI4358-----------------------
  7078. INT 13 - Super PC-Kwik v5.10+ - ???
  7079.     AH = 92h
  7080.     SI = 4358h
  7081.     ???
  7082. Return: AH = status??? (00h)
  7083.     DL = ???
  7084. SeeAlso: AH=93h
  7085. --------c-1393--SI4358-----------------------
  7086. INT 13 - Super PC-Kwik v5.10+ - ???
  7087.     AH = 93h
  7088.     SI = 4358h
  7089.     ???
  7090. Return: AH = status??? (00h)
  7091.     AL = ???
  7092. SeeAlso: AH=92h
  7093. --------c-1394--SI4358-----------------------
  7094. INT 13 - Super PC-Kwik v5.10+ - ???
  7095.     AH = 94h
  7096.     SI = 4358h
  7097.     ???
  7098. Return: ???
  7099. --------c-1395--SI4358-----------------------
  7100. INT 13 - Super PC-Kwik v5.10+ - ???
  7101.     AH = 95h
  7102.     SI = 4358h
  7103.     ???
  7104. Return: AH = status??? (00h)
  7105.     DX = ???
  7106. --------c-1396--SI4358-----------------------
  7107. INT 13 - Super PC-Kwik v5.10+ - ???
  7108.     AH = 96h
  7109.     SI = 4358h
  7110.     AL = ??? (01h)
  7111.     BX = ??? (0790h)
  7112.     DL = ???
  7113. Return: AH = status??? (00h)
  7114.     DX = ???
  7115. --------c-1397--SI4358-----------------------
  7116. INT 13 - Super PC-Kwik v5.10+ - ???
  7117.     AH = 97h
  7118.     SI = 4358h
  7119.     ???
  7120. Return: ???
  7121. --------c-1398--SI4358-----------------------
  7122. INT 13 - Super PC-Kwik v5.10+ - ???
  7123.     AH = 98h
  7124.     SI = 4358h
  7125.     ???
  7126. Return: ???
  7127. --------c-1399--SI4358-----------------------
  7128. INT 13 - Super PC-Kwik v5.10+ - ???
  7129.     AH = 99h
  7130.     SI = 4358h
  7131.     ???
  7132. Return: ???
  7133. --------c-139A--SI4358-----------------------
  7134. INT 13 - Super PC-Kwik v5.10+ - ???
  7135.     AH = 9Ah
  7136.     SI = 4358h
  7137.     ???
  7138. Return: ???
  7139. --------c-139B--SI4358-----------------------
  7140. INT 13 - Super PC-Kwik v5.10+ - ???
  7141.     AH = 9Bh
  7142.     SI = 4358h
  7143.     ???
  7144. Return: ???
  7145. --------c-139C--SI4358-----------------------
  7146. INT 13 - Super PC-Kwik v5.10+ - ???
  7147.     AH = 9Ch
  7148.     SI = 4358h
  7149.     ???
  7150. Return: ???
  7151. Note:    functions 9Ch and 9Dh are the only ones which are fully reentrant; all
  7152.       other PC-Kwik API calls (INT 13/81h-B0h) return AX=0200h and CF clear
  7153.       if a previous call is still in progress
  7154. --------c-139D--SI4358-----------------------
  7155. INT 13 - Super PC-Kwik v5.10+ - ???
  7156.     AH = 9Dh
  7157.     SI = 4358h
  7158.     ???
  7159. Return: ???
  7160. --------c-13A0--SI4358-----------------------
  7161. INT 13 - Super PC-Kwik v3.20+ - GET RESIDENT CODE SEGMENT
  7162.     AH = A0h
  7163.     SI = 4358h
  7164. Return: AX = segment of resident code
  7165. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7166.       Super PC-Kwik, and thus support this call (note that PC-Cache v5.5
  7167.       corresponds to PC-Kwik v3.27)
  7168. SeeAlso: INT 16/AX=FFA5h/CX=1111h
  7169. Index:    PC-Cache|Qualitas Qcache
  7170. --------c-13A1--SI4358-----------------------
  7171. INT 13 - Super PC-Kwik v3.20+ - FLUSH CACHE
  7172.     AH = A1h
  7173.     SI = 4358h
  7174. Return: CF clear
  7175.     AH = 00h (v5.10)
  7176. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7177.       Super PC-Kwik, and thus support this call (note that PC-Cache v5.1
  7178.       corresponds to PC-Kwik v3.20)
  7179. SeeAlso: INT 16/AX=FFA5h/CX=FFFFh
  7180. Index:    PC-Cache|Qualitas Qcache
  7181. --------c-13A2--SI4358-----------------------
  7182. INT 13 - Super PC-Kwik v3.20+ - ???
  7183.     AH = A2h
  7184.     SI = 4358h
  7185.     ???
  7186. Return: ???
  7187. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7188.       Super PC-Kwik, and thus support this call (note that PC-Cache v5.1
  7189.       corresponds to PC-Kwik v3.20)
  7190. Index:    PC-Cache|Qualitas Qcache
  7191. --------c-13A3--SI4358-----------------------
  7192. INT 13 U - Super PC-Kwik v5.10+ - DISABLE CACHE
  7193.     AH = A3h
  7194.     SI = 4358h
  7195. Return: CF clear
  7196. SeeAlso: AH=A4h
  7197. --------c-13A4--SI4358-----------------------
  7198. INT 13 U - Super PC-Kwik v5.10+ - ENABLE CACHE
  7199.     AH = A4h
  7200.     SI = 4358h
  7201. Return: CF clear
  7202. SeeAlso: AH=A3h
  7203. --------c-13A5--SI4358-----------------------
  7204. INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM TERMINATION NOTIFICATION
  7205.     AH = A5h
  7206.     SI = 4358h
  7207. Return: AX = ???
  7208.     SI = ???
  7209. Notes:    called and used internally by Super PC-Kwik when a program terminates
  7210.       via INT 21/AH=00h, INT 21/AH=31h, or INT 21/AH=4Ch
  7211.     this call is not supported by Qualitas Qcache 4.00
  7212. Index:    PC-Cache
  7213. SeeAlso: AH=A6h,AH=A9h,INT 21/AH=00h,INT 21/AH=31h,INT 21/AH=4Ch
  7214. --------c-13A6--SI4358-----------------------
  7215. INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM LOAD NOTIFICATION
  7216.     AH = A6h
  7217.     SI = 4358h
  7218.     DS:DX -> ASCIZ program name
  7219.     ES:BX -> EXEC data block (see INT 21/AH=4Bh)
  7220. Return: ???
  7221. Note:    called and used internally by Super PC-Kwik when a program is loaded
  7222.       with INT 21/AX=4B00h
  7223. SeeAlso: AH=A5h,AH=A9h,INT 21/AH=4Bh
  7224. --------c-13A7--SI4358-----------------------
  7225. INT 13 CU - Super PC-Kwik 5.1 - ???
  7226.     AH = A7h
  7227.     SI = 4358h
  7228. Return: ???
  7229. Note:    called and used internally by Super PC-Kwik on some INT 21 calls
  7230. SeeAlso: AH=A5h,AH=A6h,AH=A8h
  7231. --------c-13A8--SI4358-----------------------
  7232. INT 13 CU - Super PC-Kwik 5.1 - ???
  7233.     AH = A8h
  7234.     SI = 4358h
  7235. Return: ???
  7236. Note:    called and used internally by Super PC-Kwik on some INT 21 calls
  7237. SeeAlso: AH=A5h,AH=A6h,AH=A7h
  7238. --------c-13A9--SI4358-----------------------
  7239. INT 13 CU - Super PC-Kwik 5.1 - EXITCODE RETRIEVAL NOTIFICATION
  7240.     AH = A9h
  7241.     SI = 4358h
  7242. Return: ???
  7243. Note:    called and used internally by Super PC-Kwik when an application issues
  7244.       INT 21/AH=4Dh
  7245. SeeAlso: AH=A5h,AH=A6h,INT 21/AH=4Dh
  7246. --------c-13AA--SI4358-----------------------
  7247. INT 13 - Super PC-Kwik v4+ - ???
  7248.     AH = AAh
  7249.     SI = 4358h
  7250.     ???
  7251. Return: ???
  7252. Note:    Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  7253.       this call
  7254. --------c-13AB--SI4358-----------------------
  7255. INT 13 - Super PC-Kwik v4+ - ???
  7256.     AH = ABh
  7257.     SI = 4358h
  7258.     ???
  7259. Return: ???
  7260. Note:    Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  7261.       this call
  7262. --------c-13AC--SI4358-----------------------
  7263. INT 13 - Super PC-Kwik v4+ - ???
  7264.     AH = ACh
  7265.     SI = 4358h
  7266.     ???
  7267. Return: ???
  7268. Note:    Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  7269.       this call
  7270. --------d-13AD-------------------------------
  7271. INT 13 - Priam HARD DISK CONTROLLER???
  7272.     AH = ADh
  7273.     ???
  7274. Return: ???
  7275. Note:    this call is made from Priam's EFMT.EXE (low-level formatter), probably
  7276.       to check the ROM type on the controller for their hard disk kits
  7277. SeeAlso: AH=70h
  7278. --------c-13AD--SI4358-----------------------
  7279. INT 13 - Super PC-Kwik v4+ - ???
  7280.     AH = ADh
  7281.     SI = 4358h
  7282.     ???
  7283. Return: ???
  7284. Note:    Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  7285.       this call
  7286. --------c-13AE--SI4358-----------------------
  7287. INT 13 - Super PC-Kwik v5.10+ - ???
  7288.     AH = AEh
  7289.     SI = 4358h
  7290.     ???
  7291. Return: ???
  7292. --------c-13B0--SI4358-----------------------
  7293. INT 13 - Super PC-Kwik v3.20+ - ???
  7294.     AH = B0h
  7295.     SI = 4358h
  7296.     ???
  7297. Return: ???
  7298. Note:    PC Tools PC-Cache 5.x is an OEM version of Super PC-Kwik, and thus
  7299.       supports this call; Qualitas Qcache does not support it
  7300. Index:    PC-Cache
  7301. --------d-13EE-------------------------------
  7302. INT 13 - SWBIOS - SET 1024 CYLINDER FLAG
  7303.     AH = EEh
  7304.     DL = drive number (80h, 81h)
  7305. Return: CF clear
  7306.        AH = 00h
  7307. Program: SWBIOS is a TSR by Ontrack Computer Systems
  7308. Notes:    the following INT 13 call will interpret the cylinder number as 1024
  7309.       less than the desired cylinder
  7310.     flag cleared by all INT 13 calls except AH=EEh
  7311.     Disk Manager also supports these calls
  7312.     also supported by HyperDisk v4.01+ and PC-Cache v5.5+, in order to
  7313.       allow caching of drives using SWBIOS to access more than 1024
  7314.       cylinders
  7315. SeeAlso: AH=F9h,AH=FEh,INT 16/AX=FFA5h/CX=1111h,INT 2F/AH=DFh
  7316. Index:    PC-Cache;huge disks|Disk Manager
  7317. --------c-13EF-------------------------------
  7318. INT 13 - NOW! - ???
  7319.     AH = EFh
  7320.     CX = ???
  7321.     DL = ???
  7322.     ???
  7323. Return: ???
  7324. SeeAlso: AX=7B00h
  7325. --------d-13F9-------------------------------
  7326. INT 13 - SWBIOS - INSTALLATION CHECK
  7327.     AH = F9h
  7328.     DL = drive number (80h,81h)
  7329. Return: CF clear
  7330.         DX = configuration word
  7331.         bit 15 set if other SWBIOS extensions available
  7332.     CF set on error
  7333. Program: SWBIOS is a TSR by Ontrack Computer Systems
  7334. Note:    Disk Manager also supports these calls
  7335. SeeAlso: AH=EEh
  7336. Index:    Disk Manager
  7337. --------v-13FA--DX5945-----------------------
  7338. INT 13 - PC Tools v8+ VSAFE, VWATCH - API
  7339.     AH = FAh
  7340.     DX = 5945h
  7341.     AL = function (00h-07h)
  7342. Return: varies by function
  7343. Note:    this API is identical to the ones on INT 16/AH=FAh and INT 21/AH=FAh,
  7344.       so it is listed in its entirety under INT 16/AX=FA00h and following
  7345. SeeAlso: INT 16/AX=FA00h
  7346. --------d-13FE-------------------------------
  7347. INT 13 - SWBIOS - GET EXTENDED CYLINDER COUNT
  7348.     AH = FEh
  7349.     DL = drive number (80h, 81h)
  7350. Return: CF clear
  7351.     DX = number of cylinders beyond 1024 on drive
  7352. Program: SWBIOS is a TSR by Ontrack Computer Systems
  7353. Notes:    standard INT 13/AH=08h will return a cylinder count truncated to 1024
  7354.     BIOS without this extension would return count modulo 1024
  7355.     Disk Manager also supports these calls
  7356. SeeAlso: AH=EEh
  7357. --------U-13FFFFBHAA-------------------------
  7358. INT 13 - UNIQUE UX Turbo Utility - SET TURBO MODE
  7359.     AX = FFFFh
  7360.     BH = AAh
  7361.     BL = subfunction
  7362.         00h installation check
  7363.         Return: AX = 1234h if installed
  7364.         01h turn on Turbo mode
  7365.         02h turn off Turbo mode
  7366.         03h set Turbo mode according to hardware switch
  7367.         04h set disk access to Turbo mode
  7368.         05h set disk access to Normal mode
  7369. SeeAlso: INT 15/AH=DFh
  7370. Index:    installation check;UNIQUE UX Turbo Utility
  7371. --------!------------------------------------
  7372.